The rule in Latin is actually simpler than what is sometimes presented: If a clause was in the original statement, it must be placed in the subjunctive when the original statement is reported. This rule has certain logical consequences. First, if a clause in the middle of a report in indirect discourse has a verb in the indicative, this means only that the speaker is adding this point at the time that he is speaking, and that he is not claiming that they were part of the original statement. There is one apparent exception to this: that is, when both the original statement and the speaker could be referring to a clear and present fact, then the speaker often puts that fact in the indicative -- but this usually applies to things at hand, things seen or things the speaker could point to. Second, if a clause is in the subjunctive, this does NOT mean that the speaker disagrees or reserves judgement. In fact, he might want to cite someone, say Ennius, as an authority: in that case, the subjunctive would mean, in effect, that since Ennius said it, we should all think it is true. Furthermore, it is an observable fact that a speaker who reports his own thinking about a subject distinguishes between what he was thinking in the past (which will go into the subjunctive) and what his current reasoning is (which will have to be in the indicative).
The above discussion applies to all subordinate clauses in indirect discourse, but it is particularly useful in considering causal clauses: we should be very clear about what is the speaker's own reasoning as he speaks (quod + indicative) and what the speaker represents as his or someone else's reasoning at the time that the main clause was said, thought, written, etc.
Finally, notice that it follows from the above that any reason that I reject (in the form: "I did this not because I wanted to but because I was forced.") must be in the subjunctive: I cannot simultaneously say that my current reasoning is "because I wanted to" and that this was not the reason that I did something. This is called the Subjunctive of the Rejected Reason, and is essentially the equivalent of saying "not because, as someone not me might say, ...."