I like Costco. Great prices and you can't beat the return policy. If you're upgrading, you have 30 days to return the phone and revert back to your original contract without it costing you a cent. You have 90 days from the day you upgrade and buy the phone, to return it to Costco and get a brand new S2 (not refurb) if there's something wrong with it OR, you can swap it out for a different phone if you decide you don't like the S2. After 90 days, the AT&T store takes over the warranty.
I like the 90 day trade-in they offer because it gives me a chance to make sure the phone doesn't have a problem and, I get a chance to use it for a while to make sure it's going to work for me. I also like the ability to walk into any Costco and get instant service if the phone isn't working instead of having to mail it back to a store. I bought the Samsung Infuse from Costco for $149. Same price at Best Buy and Radio Shack, but Costco has the 90 day return policy and no restocking fee.
Costco tells me they'll have the phone by the end of the month.
Just my $.02 worth!