In the world of carrier-subsidized mobile phones you need to be a high-rollin' AT&T customer (or a new iPhone buyer) to be eligible to upgrade from the iPhone 3G to 3GS for $199 (16GB) or $299 (32GB) that Apple and AT&T advertise.
Although AT&T relaxed its eligibility standards slightly to include a few more iPhone 3G customers, the 3GS is still out of reach of many that don't want to pay the $200 early upgrade fee.
The best way to get an early upgrade to the new iPhone 3GS at the published prices of $199 and $299 is to have an AT&T Family Talk plan.
If you do, go to the AT&T iPhone portal, click on "check your upgrade eligibility" and cross your fingers. (Alternatively, you can try the Apple iPhone portal but it's not as easy to see all of your phone lines at once).
If you have a line that's eligible for an upgrade to the iPhone 3GS, you can simply upgrade that line, then when you get the 3GS you can swap in any of the SIMs from your Family plan and start using it immediately with any of the lines that you choose.
There are a couple of caveats, though...
First, make sure that you put the SIM that came with the new iPhone 3GS into the iPhone whose number you used to qualify for the upgrade. When you upgrade a phone line on AT&T, they automatically deactivate its old SIM card for security reasons (so that someone else can't activate or use it, apparently).
Even though you swapped your SIM card into the new 3GS, it's important that you remember to install the new 3GS SIM into the phone you told AT&T you were upgrading. Failing to do this will result in the old phone displaying a "No Service" message where the carrier logo should be. In fact, take a sharpie and mark the old SIM card with an X or something so that you don't get them mixed up. The old SIM card is now jewelry at this point.
Now the fun part. You need to have a heart-to-heart with AT&T Wireless customer service (1-800-331-0500 or 611 from an AT&T phone) and tell them that you used the new 3GS on a different phone line. Once you've warmed up to them, you should confirm the IMEI and SIM number combinations for the phones involved in your tomfoolery, otherwise you may find yourself without service. Don't worry about it though, AT&T doesn't care if you swap your phones around inside your Family Plan, and why should they?
If you upgraded someone in your Family Talk plan from an original iPhone to the iPhone 3G, that phone will eventually get a text message like this:
AT&T Free Msg: Your data plan is not eligible for iPhone 3G. To prevent excess charges and enable Visual VM, please call 611 to add a Data Plan for iPhone.
That's because the iPhone 3G requires a $30 per month data plan, whereas the original iPhone onlt required a $20 per month data plan. Again, call AT&T and come clean to them about your line swapping madness and add the 3G data plan to the line that got upgraded to 3G
Once you're confident that AT&T has all of your Family Talk phone line's IMEI and SIM numbers correct in their database, it's recommended that you power down each phone for 2-3 minutes then turn them back on. This will force them to get the latest settings from AT&T so that everyone can be happy.
Voila, you're finished.
Bonus points: If you want to save some money, ask the AT&T representative about the $30 Family Messaging Unlimited Plan. It comes with unlimited SMS messaging (hopefully MMS too) for every phone on your Family Talk plan –- quite a deal as it only costs $10 more per month than the $20 that AT&T charges for unlimited SMS on a single iPhone line.