Heaven and Hell, IMHO, are constructions which labour to give meaning to lives in 'this' world. Karma goes a step further by introducing several cycles in this world. Apart from fulfilling the carrot-stick structure, the theory also aims to explain the suffering in this world. My cursory reading of the Gita, in this regard, was not very convincing.
All theories of fate seem to be based on a strong assumption that there is a meaning, an order, a scheme of things in life. Once this assumption is made, then we try to rationalize each occurrence as determined (by fate) and/or earned (by Karma).
Why are we making that assumption in the first place ? Is it so scary to come to terms with the statement that there is no order or meaning to lives ? I don't find it scary and the simplicity of this is so enchanting.
Q: "Why do badd things happen to good people"
A: No reason whatsoever