Agreed on the complaints -- bs to have to pay this upfront before you actually get upgraded.
I buy pre-ordered products all the time online (lots costing thousands of dollars) and my card doesn't get billed until the product ships.
Seems like airlines should operate the same way.