I have to go, but some things here need clarifying:
What Richard Dawkins describes in his book is the tendency systems have to reach some kind of stability. One kind of stability is where everyone is against everyone else. In that case, anybody trying to do good will be used and on the long run, become extinct. If everyone were good, on the other hand, a selfish bastard will have a helluva good time, reproduce, and generally cause things to deteriorate to the condition mentioned above.
A full population of vengeful do-gooders, however, will cooperate wonderfully with each other while kicking the excretion out of the bad guys. Good guys, on the other hand, get as much support as anyone else in this group. After several generations Good guys and vigilantes are both common, giving the bad guys a chance to slip in.
Eventually, a stable state will be reached with some of the people good, some bad and some vigilant, proportions depending on the reward matrix for cooperation vs. betrayal.
See also Game theory, Evolution, and Complex Systems.