This has only happened to me once in 3 years, but it's made me wonder if I should be protecting myself better...
I was hired for a 5 day project by a studio (who I had worked for previously). At the end of the first day, I was told the director had put the project on hold (it was a speculative pitch for an existing client) and that they didn't need me any more.
I ended up asking for, and getting, an extra day's fee as a cancellation fee.
It did mean that I'd lost out on another 3 day's work, but luckily I had another job in the queue so wasn't sitting around twiddly my fingers.
So my question is: Do you get studios to sign a contract when you're freelancing for them?