The basic rules in the U.S. appear to be: If you purchased the original iPhone, you're immediately eligible for “new customer” pricing (otherwise known as Apple's advertised $199 and $299 prices). If you purchased the iPhone 3G, AT&T subsidized the cost of that phone via the two-year contract you signed, so you don't get the lowest price. However, if you purchased the iPhone 3G more than a year ago—and remember, it hasn't quite been a year since the iPhone 3G's debut—you should be eligible for AT&T's “early upgrade” price on the 3G S: $299 and $399 for the 16GB and 32GB models, respectively. So if you bought the iPhone 3G on opening day (July 11, 2008), you'll be able to buy the 3G S at a partial discount on July 11, 2009. (Note that this will require you to extend your AT&T contract until two years from the new purchase date.) If you purchased the iPhone 3G more recently, the prices are $399 and $499. Oh, and you'll also have to pay an $18 “upgrade fee” regardless of which price you're eligible for.
But wait, there's more! It's also possible to pay AT&T's $175 early-termination fee to cancel your current contract and then start over with a new contract, paying a lower price for the iPhone 3G S along with a $39 activation fee; however, there's no requirement for AT&T to treat you like a “new” customer, so this approach is risky. (Plus there's a chance you could lose your phone number.)
That seems simple enough, right? Unfortunately, the real-world experiences of Macworld's editors and readers indicate that the situation isn't quite this straightforward. AT&T uses an internal formula based on numerous factors, including your tenure as a customer, your billing plan, and your bill-paying history, to determine which upgrade price you're offered. We've seen all sorts of different prices when various members of our staff and their friends and relatives have punched in their phone numbers on Apple's Web site. You won't know what deal AT&T is offering you until you ask.