While I agree with @ChrisForrence about the deposits, percentages and milestones for payments, I disagree that it isn't a good practice if done correctly, meaning you have a legally binding agreement that authorizes you to charge their credit card upon non-payment of work.
You have a contract that says something to the effect:
You authorize [company name or your name] to charge your credit card for any unpaid amounts of work after completion of project.
Below this sentence they would fill in their credit card information and sign the paper. This gives you the authorization to charge their credit card if they never pay for the work. Of course I would recommend having a lawyer create this document so it complies with any legal requirements but I have seen this used before.
This method can be used in conjunction with deposits or milestone payments. Those who use this kind of a document tell me they typically try to contact the client before making the charge. It is when the client either refuses to pay or won't reply to them that they charge the card.
Also, when using this information be sure the contract with the credit card info is kept in a locked and secure place.