In general, essentially everyone in the US has an unlimited message plan, and if not, many carriers don't charge for incoming. My recommendation to how to fix this is to vote with your wallet. Switch to a prepaid provider with better SMS rules.
I'm assuming based on the $0.20/message cost, that you're using AT&T prepaid, which has some of the highest SMS fees for prepaid plans.