IBM is a company, an entity. it is made of people, but it is not a person (although americans might try to disagree..). it is a paper-clip maximiser, only instead of paperclips, it's cash.
it does not have morals, it does not have a conscience, irrelevant of the fact that the people that make it up do. to blame a company for doing exactly what it was made to do is madness.
if IBM didn't do it, another company would have done it. IBM could have failed, in fact, as a result. or at least, they might not be in the position they are now.
you may be tempted to argue that, morally, IBM should have not agreed to take part, regardless of the effect on the company. you wouldn't be entirely wrong. but a company does not have morals. not having morals is what allows them to make such vast amounts of profits.
when health insurance companies fight to the death (sometimes literally) to avoid paying out claims, where is this moral outrage? or when BP do literally whatever they want to environment, where does the outrage dissipate to after the media gets bored of talking about it?
we can not expect companies to be moral agents. we can not expect them to value human life over cash. to punish an entity with no conscience makes no sense. it would be akin to shouting at the wind for blowing, or kicking a hatstand for falling over.
the best we can hope to do is stop companies from engaging in "immoral" behaviour (whatever that means - they change over time) whilst they are committing it.
otherwise, lets start legal action with hugo boss for constructing nazi uniforms. or VW (literally, the "peoples car") for working with nazi germany.