If you want to sent SMS messages, I would recommend Twilio. It is a paid service once you use it in production but you can get a test account to play with until you get an app that works the way you want it to. They have great documentation and a great API to work with. I was able to get a C# application up and running in about half an hour. Here is a link to their REST API:
http://www.twilio.com/docs/api/rest[
^]
Once you want to use it in production, it will cost one cent a text. That scales really well, since the customer pays only for what they use.
If you want a truly free option, the only real alternative I see is sending an email to the phone's email address (for example 1234567890@txt.att.net). You need to know the carrier the phone uses, since each carrier has their own format, and the text won't be as clean, but it will send a text to the phone. Then you can just use the basic email libraries built into .NET.