Just to play devil's advocate...
(Note: I think the prices charged in the US for texting are too high, but it's helpful to consider both sides.)
If SMS messages only worked on-network, and only to phones that were on at that exact moment, with not store-and-forward, no ability to communicate with other providers, I can buy the argument that they should be free.
However, the cell companies do have to build up an infrastructure of equipment to be able to hold SMS messages until your phone comes online, as well as cross-connect agreements with other providers to be able to send SMS to phones on other carriers. I would imagine this requires a high-availability data center be built, probably several, with redundancy, etc.
Does it cost them $0.20 per message to build all this? Of course not. I'm sure it's a huge profit service for them - but it's not costless to provide.
I'm not defending their gouging of us, just saying it's not like they are charging us for something that costs them nothing to provide.