Today I successfully navigated the process of buying an iPhone 3Gs for an upgrade price 6 months ahead of schedule.
The key to this accomplishment? You need two lines and the other has to be eligible. Oh, and you will end up with two new 2-year contracts.
The way it works is that you basically upgrade the other phone, and then swap the new 3Gs to the current iPhone 3G line and cancel the extra services. Both numbers stay the same.
I ended up with a 32 GB 3Gs for $299, the same Samsung phone my wife has had, and an iPhone 3G with an inactive SIM card I own free and clear. I can sell the 3G for more than enough to cover the cost of another basic phone to replace the Samsung if I need to replace it in the next 2 years.
I had the store rep swap the SIM cards in the iPhones while I was still in the store. Also, I did this at the AT&T store, not the Apple store, though I was told I could do it there as well.