httpwebwitch - 8:10 pm on Jan 20, 2011 (gmt 0)
I included that "negligence" bit was because I was recently handed a contract where my liability was defined in terms of "gross" negligence. And I didn't know what "gross" really meant. If I was "grossly" negligent, then I'd be liable for the consequences of code I wrote for the project... and as it turns out the definition of "negligence", gross or not, is fuzzy depending on what "normal expectations" are... A thorough contract should clarify this.
A lot of these things can be boilerplated => that means once you've written (or just modified) one contract, you'll be able to use the same contract for all similar situations. Freelancers and consultants know this already. If someone wants me to do a consulting gig, I have my contract already written and I just need to change a few names and details before sending it to a client. For freelance work I have a different contract, already written from previous jobs.
A well-crafted standard contract is part of your professional toolkit.
And I didn't even touch on "non-disclosure" agreements (commonly: "NDA"), which are usually a separate document...