Free iPhone 3GS upgrade to iPhone 4?

So Radioshack is offering $50 off the price of an iPhone 4 for the next several days. As far as I can tell, the difference between the iPhone 4 and the iPhone 3GS is not that great, so I've not really been that interested. But it got me thinking.

It turns out that there are many sites that supposedly give you cash for your old iPhone. Oddly, Radioshack is offering $125, and I see sites like Gazelle.com and CashForiPhones.com offering anything between $125 and as much as $315. How can that be? I am not sure.

As current AT&T contract lock in is over, so from my calculations: $300 for the phone, $50 discount from Radioshack is $250, so if I can get $250 for my old phone, it's a free upgrade. My remaining question is, who the heck is CashForiPhones.com and can I trust them?