I have found that if you are doing a small project, you do a sanity check up front. If the project names a goal, you can reasonably charge fixed fees only if you have certain knowledge of something.
1. Was the goal defined in a printed (or soft-copy) document in sufficient detail for you to estimate to (within a week) of how long it will take you to do it? If the detail is lacking, DO NOT TAKE IT AS-IS. If you cannot break it down into bite-sized chunks, it might be more than you want to swallow.
2. Was the goal defined as a product, a service, or a result? You treat these differently.
Example of product: A database that tracks a small business's widget
inventory. You can often do this fixed-fee. But the catch is, as noted above, CLEARLY DEFINE what is to be delivered. CLEARLY DEFINE a product change process that EXPLICITLY STATES renogotiation for fees if the change substantially alters the nature of the product.
Example of a service: Operations support for a specific period with well defined duties. You can often do this on a work rate, i.e. hourly rate. The customer will know how much to budget. But the bug-a-boo is getting a clear definition of expected duties. And you look at those duties REALLY HARD before you name the rate.
Example of a result: This one is painful because it is open-ended and can end up tarnishing your reputation. It can also gouge your customer's wallet. Let's say the customer says "Set up my computer with adequate security for my user base and hang around long enough to teach me how to maintain it." That's a goal or result that requires you to first evaluate the computer before you know what it will take, and it also requires you to decide whether your customer is a true chowderhead.
3. Do you have a lawyer on retainer? If so, pass ANY contract by that lawyer before signing. Ask about implications of any fine-print clauses or any clauses that say (for example) "Federal Acquisition Regulations I-IV are included by reference." Watch for clauses regarding "subject to applicable contracting laws for the state of CF" (confusion) or whatever state you are in. See if that means you have some obligation not in the contract but explicitly in state law. Or federal, as appropriate.
4. If you have neither a lawyer nor a written contract, please advise me where you live, I have some bottom land to sell you from south Louisiana.
5. DO include (in your contract) a reference to whatever specification you were given as an implied part of the contract. Name the date of the document from which you are working. Be absolutely sure you have a copy of the document as of that date.
6. If you ask for a contract and your client says, "Why? We're both gentlemen here" - odds are your client is NOT a gentleman.
7. Determine up front if your client will want a change-of-specification method in the contract. Believe it or not, these are your friends. One company I worked for was notorious for allowing contract changes at any stage of the contract. For a nominal fee, of course... We made more money off of changes than we did off the original specifications.
Just some random thoughts.