Along the same lines, though, are they even ALLOWED to charge your card before they ship the item?
I realized after I posted this, that my question doesn't make any sense. The examples given with eBay and PayPal prove that point.
OF COURSE they can accept payment before shipping the item. However, doing so - especially for an item that they know isn't available - is not a very nice thing to do (and may border on some ethical gray areas, too).
As for their inventory management, I have a strong feeling that this is a case of "the right hand doesn't know what the left hand is doing."
Their website should indicate when an item is out of stock, and warn the customer that it is not available, and/or is on back-order, with an estimated arrival date. That would be much more helpful to the customer, and would probably help swing the average customer experience for the better.
To go one further, perhaps instead of charging when the order is placed (as they do now), charge only AFTER confirming the item is in stock and available to ship. For orders that are in stock, not much would change (they get the money, they ship the item, etc). For items that are not in stock, it would reduce customer dissatisfaction, as well as the amount of work needed to process refunds for cancelled orders.
They can certainly put a hold on the credit card for the amount of the purchase, at the time of the purchase. However, it seems a lot easier to cancel a hold, than it is to reverse a transaction, at least for them.