Since the AT&T rates are so high for data, I have the smallest/cheapest plan available for texts and minutes, so I often get close to my limit at the end of the month. I therefore like to send my SMSs via the unlimited data email (###@vtext.com), and only make/answer calls to those that are in network when I'm running out of minutes.
Instead of going through each Address Book entry and adding emails to them manually after looking up their carrier through a service (such as this one at whitepages.com), I adopted ViViDBoarder's excellent script to add the SMS emails, updating the code to work better with the current version of whitepages.com, and adding a little suffix representing the carrier to the mobile phone label so it says mobile att.
I wanted something I could see easily on the phone when it rings, so I shortened the carrier names. This works on the iPhone, and should work on other phones you might sync with your Address Book if they show you the phone number label when a call comes in. An alternative is to have it set the actual person's name or suffix to the carrier label instead. You just have to make sure the person's name isn't so long that the suffix falls off the end of the screen.
Copy this into Script Editor, select the contacts in Address Book you want to update, run it, sit back, and let it go! Sync your phone with your computer and you should be good to go, saving money despite the carriers not telling you who is in network and therefore a free call!
This script plodded through my 2500 contacts in about 20 minutes, so it isn't super fast. However, it does the job and you should only need to do this once for your entire Address Book and on new entries. (Hmmm ... what if I set up a Finder Folder Actions script to act on ~/Library/Address Book files ... next week, maybe!).
Mac OS X Hints