In my youth, I sold cell phones for Verizon. It was not a rare occurrence to have a customer sign up for a new account and get their free phone, only to come back a week later and tell me they dropped it in a toilet and wanted another one. They were shocked when the phone they got for free just a few days before now cost them close to $200.
To a lesser extent, the same thing is happening with iPhone 3G owners wishing to upgrade to the 3G S for the subsidized price. A year ago, 3G owners bought a $600 cell phone (assuming we're talking about the 8GB model) for just shy of $200. The 2-year contract guarantees that AT&T makes their $400 back over the length of your contract. So far, 3G owners are only about 1 year into their contract, so they've really only paid off about half of their subsidy to AT&T.
Most carriers would stop there, and offer no additional incentives until you've come close to reaching the end of your contract. AT&T is being about as generous as they can be by offering 3G owners half of the subsidy after completing half of their contract. Once 3G owners have fulfilled a year of their contract, they can get the 3G S for the base price ($199) plus half the subsidy ($200) for a grand total of $399.
Read on for some fun cell phone contract math.