My contract expires in December of this year and, according to retail stores, I am not able to upgrade until August (6 months out). I called 1-800-331-0500 (att customer care), selected option #3 (sales, upgrades), then selected the terminate option. I didn't really even have to sell them on anything and the guy offered to upgrade my wifes phone and mine, signing a new contract today (which ends up in adding a net of 14 months if you follow my math) and morphing our lines into a family plan. Unfortunately, we cant do it until the phone is launched because it isnt in his system yet, but he is calling me back on monday to handle it all. This is literally saving me $700.
He explained to me that this is possible because he is accts cancellation department, not a retail store (whose business model is based upon sales and commissions) nor the online sales department (similar situation?). I didn't ask how many months of the two year contract you needed to fulfill in order to be eligible, but I assume safely it is about 1 yr give or take.
Exceptions to this are GOING TO or COMING FROM an iphone. He didn't go into details, but he said things get complicated and he didn't sound like he would be able to do it.
Additionally, he informed me that there would be no upgrade fee, and that he would waive shipping costs for overnight delivery (hopefully tues, no later than wed).
So in short, if you are in contract and dont mind signing a new one, this is the absolute only way to go if you trying to save a buck. I can wait 3 extra days to save that kind of scratch. Hope this helps someone who may be in the same boat.