As somebody who has been burned badly by somebody who didn't pay up after work was delivered I can tell you do not ever work before getting some fee up-front (preferably the entire amount). If the person can't afford to pay you before you start, you probably don't want them as a customer.
Conversely, those who are ready, willing, and able to pay are the best and most lucrative customers to have (and you can charge a lot more than $2300 for your services).
For ongoing projects that you bill hourly instead of fixed cost, try to do retainer instead of invoicing and then getting paid a month later model.
Cash flow is THE single most important thing in this business. Try to get paid as early as possible, and delaying paying others as much as possible (while still paying them reasonably soon, of course - just try to negotiate better terms upfront, i.e. get paid Net/15 and pay others Net/30).
Also, never EVER work without a contract. For every project, have client sign MSA and SOW. I bought mine from here: http://msabundle.com/ and modified per my needs.
I've never had anyone walk away from a project after asking for 50% upfront at projects this scale.
Sometimes you have to be firm on it, but trust me, beats the hell out of trying to collect 10-15k in outstanding invoices when your mortgage is due.
Also it serves as a negative filter, weeding out cheap or incompetent clients. Like any other business, finding good customers is vital to your flourishing.