Let me clarify the part about it being illegal to bill before shipping.

I think it is a Federal law, and was mostly intended to deal with mail order situations, and it also apples to internet purchases.

Special orders are exempt because you should know there is going to be a delay for those.

While the Feds do not enforce the law, you can get your credit card company to enforce it if you complain.

I had a situation where a company shipped part of my order, but "lost" part. I complained to the CC company and they told me about the law and said they enforce it through regulation "Q" (or maybe it was "W") which is part of the merchant credit card agreement. They immediately issued a credit to me and a charge-back to the merchant.

When I finally got the item, I had to call the CC company to authorize the billing.