In my experience, flat-rate projects succeed or fail by the contract terms. The deliverables have to be fixed and the project completion has to be extremely well-defined so you can declare it complete when the deliverables are complete. Scheduling should also be part of the contract so that client delays can't sap momentum and drag the project out. All change orders should be time and materials at a rate significantly higher than the flat rate average to discourage scope creep.
I usually see the problem with flat rates as being lack of client acceptance (using troubleshooting or whatever as an excuse) and delays as the main problem and vague deliverables contributing to both.
Overall, you have to be hard negotiator AND willing to tell the client "the deliverables are completed as specified, I'm not working anymore". Few businesses are willing to do this and even fewer individuals, which is why T&M is always the safer play.