Here’s something we shouldn’t forget:
Very simply, in cases where private profits and public interests are aligned, the idea of corporate social responsibility is irrelevant: Companies that simply do everything they can to boost profits will end up increasing social welfare. In circumstances in which profits and social welfare are in direct opposition, an appeal to corporate social responsibility will almost always be ineffective, because executives are unlikely to act voluntarily in the public interest and against shareholder interests.
via The Case Against Corporate Social Responsibility – WSJ.com.
Basically to get businesses to do good, we need to make the cost of doing bad unacceptable.