First of all great article @reverseacid. You explained smart contracts and issues with smart contract very well.
There are surely many cases when it comes to smart contracts. There are many possibilities. Suppose "Mr. C" is the customer who is paying for some task and "Mr. S" is the seller or the freelancer who is doing the job. There are many possibilities and ways that people can play with smart contracts. With different kind of smart contracts, there are many loopholes using which Client or the seller can do the fraud.
I think following system can work :
The customer creates the order - the fund will be stored in the wallet - Seller submits the files - Fund will be release once customer confirm the delivery - fund will be released but there will be some freezing time and seller will get the fund after a certain time, let's take 7 days of freezing time.
Why freezing time ?
I don't know if this is the proper solution. But suggested this based on some most popular site's concept.
RE: The Smart Contract Flaw - Stressing the Need for a Machine Readable Legal Prose - Part 1