To name the latest example: A new iPhone model, the iPhone 3GS, was introduced yesterday. With prices the same as the prior iPhone 3G models... unless you currently have an iPhone 3G. Then the prices are up to $200 higher, with one 'upgrade' price level in the middle for customers at a certain period in their two-year contract. Cue internet outrage.
Now, the reason for this is no mystery. The iPhone 3G was a subsidized phone; AT&T paid a substantial part of the actual cost of the phone, in return for making that money back (with, presumably, interest) in the monthly subscription fees over the required two-year contract. (This is the same reason cellphone carriers charge an early termination fee for customers who cancel the subscription on a subsidized phone before the end of the contract.) At this point in the contract (approximately one year for the people who bought the iPhone 3G on release), AT&T presumably hasn't earned back the cost of the subsidy. So they charge you extra to upgrade phones, as a way to recover the subsidy money they're not earning through the remainder of the original contract. (And no, renewing the contract on a new phone doesn't count towards the subsidy on the current phone; the new phone is also subsidized, and the two years of the contract renewal goes towards paying off the subsidy on the new phone.)
There are good arguments to be made about the details of the arrangement - whether it's fair to have simply one 'upgrade price' level for customers partway through their contracts, no matter how many months are remaining; whether the upgrade fees should be prorated, as contract cancellation fees often are; even whether AT&T should write off the remainder of the subsidy as a gesture of goodwill. And there's certainly a good argument to be made about whether subsidized phones are a good idea at all; there were some good ones percolating in the time leading up to the iPhone 3G's release, when it started to be rumored that the next iPhone would be a subsidized phone.
What really annoys me is all of the professed shock and outrage, that this is somehow something new or unprecedented. It is not. This exact same issue came up when the iPhone 3G was released last year, for AT&T customers with time remaining on a contract with a subsidized phone; they had to pay the same kinds of upgrade prices to get the iPhone 3G. The only difference this time around is that now the iPhone 3G is the subsidized phone; last time, first-gen iPhone owners didn't have to pay the upgrade prices, because first-gen iPhones were sold at full price instead of at a subsidy.
None of this should be a surprise to anyone who's been paying attention. As far as I'm aware, the same basic practices hold true for any subsidized phone from any carrier. A number of people at the iPhone 3G introduction even pointed out that iPhone 3G buyers would likely be facing this situation when a new model was released. So please, spare me the histrionics and breast-beating, as if this were a novel practice deserving outrage; it isn't. Instead, let's talk about the situation as the existing reality it is, and discuss the best thing to do about it.