See this article on from 2009: http://news.cnet.com/8301-13579_3-10266781-37.html
update: Based on my recollection, with 3G and 3GS, AT&T only asked for 1 year contract, not two. When new iPhone was released, sometime in June or July, anybody with contact renewal through October was marked as elegible to sign new contract, and received contract pricing on the newly released model if iPhone.
You can always upgrade it is just a matter of how much of a subsidy you want. Near the end of your contract you'll get the full subsidy on the new phone. One month into your contract you won't get any subsidy on the new phone.
There seems to be some people here who think there is a super secret way to purchased phones at subsidized prices without fulfilling (or nearly fulfilling) the contract on their previous subsidized phone. I don't think so. TANSTAFAAL
If you aren't near the end of your 2-year contract then you are basically still paying off the purchase of your original phone and so AT&T (and other carriers) aren't going to give you the subsidy to purchase a new phone although they might pro-rate it.
How has your experience been different?
I'm not sure why you have an expectation that any carrier would subsidize a new phone before you've effectively paid them for the previous phone. Obviously there is room to haggle on the margins of the contract but the entire business model of subsidized phones and 2-year contracts is designed around the idea that the 2-year contract is there to pay off the initial equipment subsidy. TANSTAAFL