Thank you for your question. Attorneys work in the same way and I completely understand the impact of a non-paying client.
You have stated that you have them sign an agreement. I would suggest adding the following language into your contract
Entire Agreement - This Agreement, including any exhibits attached hereto, contains the entire agreement between and among the Parties and supersedes any prior understanding and/or agreements among or between the Parties with respect to the subject matter of this Agreement.
Agreement Binding - This Agreement may not be modified, changed or discharged, in whole or in part, except by an agreement in writing signed by the parties.
Amendment - This Agreement may be amended only by the written agreement of the Parties hereto.
Severability - Except as otherwise stated in this Agreement, any provision or article declared unlawful or unenforceable by a court of law or regulatory agency with jurisdiction, or deemed unlawful due to a statutory change, will not affect the otherwise lawful provisions of this Agreement.
Interest - Any invoice which is unpaid after 15 days shall incur interest at a rate of 10% per annum calculated on a monthly basis.
After your contract says this, lets assume that you are paid a retainer of $5000 to do work in one month. The work you perform exceeds that retainer by $2500. You send an invoice which delineates the work done and and requests an additional retainer amount. Your invoice needs to states "All charges for prior work performed are due immediately and shall incur interest if unpaid as stated in the client agreement".
The only way to actually collect from non-paying clients is to mount a collection campaign with letters and phone calls. The end result being communication of the point that if payment is not made, you will initiate legal proceedings.
In Colorado, the easiest way to legally collect from a client who owes up to $7,500.00 is to file a small claims
court lawsuit. These lawsuits are inexpensive and very easy. All you would need to do is fill out the Notice/Claim form found at: http://www.courts.state.co.us/Forms/Forms_List.cfm?Form_Type_ID=237.
Then you take this form to your local small claims court and file it and pay the fee. Next the court will give you a hearing date. On that date, you take a copy of your signed agreement and your unpaid invoice and explain what the documents are and that you have not been paid to the judge. The judge will then hear the reasons why they did not pay you. If it is a valid defense, which it will likely not be (I'm not happy with your work is not a valid defense usually), then the judge will order payment.
Here is a guide to Colorado small claims: http://www.courts.state.co.us/userfiles/File/Media/Brochures/smallclaimsweb.pdf
Please let me know if you have any questions. Please also remember to rate my answer positively so that I am compensated for my work on your question.