You can do it two ways, one is cheap, the other method is stupid.
What you're supposed to do: Contact many different mobile telecoms ... O2, Vodafone etc in different locations in the world (that way it doesn't cost extra to send international calls, since you'd be sending them locally though their local telecom) - Yes, you can just use O2 if you want (for example) but it will cost for international calls/texts. You need to talk to them about bulk sms gateways (call them).
Stupid method but it works: Get a mobile ... make that into a SMS gateway ... you'd need a good constant internet connection otherwise it'd be unreliable. Andriod market actually lets you download a SMS gateway app (google 'SMS gateway andriod'). It's a stupid method and you shouldn't bother doing it but it's worth telling.
It will cost money per text regardless of your service offering them for free so it would be hard fund it.
IF, however, you don't want to make your own SMS gateway and infact just want to use someone elses ... go to a website like textlocal.com (their are cheaper alternatives .. just need to spend some time on google) they'll let you use their API .. via PHP (or whatever you use to code the website) you can recieve/send text messages. Which I strongly recommend considering you're attempting to provide this service for free (saves costs in the short run - as for the long run, it depends)