This sort of thing happens so frequently in our hobby. Here's a very common scenario:
Joe Blow drops $15k off with Shop1 for a rolling chassis buggy build. Shop1 proposes that $15k will furnish parts and labor to produce a rolling chassis for JB. Says it'll be ready in 3 months.
JB's money is used by Shop1 to buy parts, pay overhead, pay salaries, etc for work currently being turned out, not for JB's buggy build.
JB gets tired of excuses and says he wants his $$$ back and he'll have Shop2 build him one instead. Shop1 says he doesn't have the $$$ to return. Begin internet drama.
Where's his $$$?
It's gone. It has been spent by Shop1 already because he is one job behind in terms of cash flow.
How do you combat this?
Signed contract with money down, not full payment.
Stay in touch with shop and demand return communication
Demand weekly updates with pictures, proof of parts sitting at shop, etc
There are other ways too. Here's what I have seen myself back in the day. Dude wants $xx,xxx worth of work (labor in this case) done. Has enough coin to put money down and pay as he goes. Open an account at shop's bank with the customer's down payment. Out of that account, every week, comes the shop's labor. The customer can see it and the shop can tell the customer when coin is running out and "Better add to it if you want me to continue." That way, your money can be "seen", the shop can't say you owe us $xxxx, etc.
Obviously this scenario would work best with a small shop, not a large company with an already established reputation.