One possible way to prevent this outcome is for cooperative individuals to punish selfishness, for instance by refusing to help those who don't reciprocate. In this week's PNAS, a new paper suggests that another way to stabilize cooperation is to have selfish individuals punish selfishness themselves [subscription needed].
As the authors put it,
This behavior might seem hypocritical in moral terms, but it makes sense as an evolutionary strategy. It can even be looked upon as a division of labor, or mutualism, whereby cheating during first-order interactions becomes a "payment" for altruism (punishment) in second-order interactions.In other words, these "selfish punishers" may not return cooperation in kind, but they pay for it by punishing other selfish individuals. Ayn Rand would probably love this stuff, but it puts me in mind not of unfettered individualism but a feudal society - a mass of cooperators working for the benefit of the "greater good," with a handful of punishers taking the benefits of that work and keeping everyone else in line.
Eldakar OT and DS Wilson. Selfishness as second-order altruism. PNAS 105(19): 6982-6.