In a way you do commit to a complex transfer of values with a plan for paying back. Just like if you were a bank agreeing a loan with a customer.
edit: For large projects it is not enough that the customer sign a contract and puts a down payment upfront. We usually demand an LC that must run until shipping and the main payment.
I have projects that last for years, not due to my mistake, but due to investors errors in mechanical department. If I had to wait for them to pay me all the time, I would go crazy and bankrupted.
Payment should never be 100% based on a single condition. That is unacceptable to both seller and buyer.
Payment is usually split into 3 parts.
Up front, say 5-15% so that the seller can start work on the engineering and buy parts.
Upon shipping, say 70-90 %. Think about that you risk a malicious customer not paying anything at all after the seller ships the machine.
The rest upon take-over. This usually means that the customer starts using the machine in his production. At this time, if there are any remaining issues the seller agree with the customer which issues there are and when the seller will finish solving them. Essentially, the solving of the issues is part of the sellers warranty.
The warranty runs for a limited time period, 1-2-3 years, and it starts upon signature of the takeover documents.
This final agreement may require quite a bit of arm-wrestling, but if push comes to shove the seller can insist that the buyer have to decide to sign or not use the machine.
When I finish the job I request that testing starts immediately, and if investor is not satisfied with something he needs to write what is not according to contract and I will fix it and pay penalties if he is right
Penalties must also be specified in the contract. Usually these are a relatively small sum, and are dependant on when the production on the machine can start, not if all issues are solved 100%.
In my world penalties are very rare. Usually the customer has to pay for them himself since we simply up the sales price accordingly.
Also, we never accept to cover costs caused by "consequental damages".
EVERYTHING of the above must be stated in the contract. Anything less is unprofessional.