Your experience is different from mine, but I've definitely done mid-high six figure single contract deals where my team worked for a month and a half, fully delivered, and then sent off an invoice and "hoped" --- though "hope" didn't really play into it, because in srs bzns, when people get an invoice for a project for which they signed a SOW with a price tag on it, they pay.
I have no doubt there is a class of client for which this isn't true, but: don't work with those clients. Good rule of thumb: if the median HN reader has heard of a company, that company cannot afford to stiff consultants.
In many cases it's less a concern of the client not paying (I've literally never had a client do that once I broke out of the <$100/hr market) so much as that an upfront payment is a much stronger signal of commitment to the project. In my experience, clients who haven't yet paid anything are less invested in the process and more likely to delay communication/deliverables.
It's also a consequence of occasionally doing work with startups who, while they have every intention of paying, don't always have rigorous financial controls in place and sometimes end up running into cashflow problems.
I'd flip your analysis on its head: if there's a consultant you're not comfortable with paying upfront, you probably don't want to hire them.
If I'm doing one month work for Thomas, I'll bill him at the end of the month and assume paid.
If I'm doing one week work for Capita21 in Mexico (really picked it at random); I'll ask for "full" up-front payment and divide the project into different milestones.
Let me ask you a question: Was that client a local client? Was it in the USA?
Gigster has also built a pretty sizable business with this payment model.