My 2 cents worth:
1) Consultant-induced problems: If a problem is caused by the consultants ineptitude, false assumptions, or just plain bad luck, the client shouldn't be charged extra.
2) Consultant research: Research for what? If the research relates to 1), the same answer applies. If the research relates to anything else, it should be billable, UNLESS the consultant doesn't have a clue and is just flailing in the dark hoping to stumple upon a solution.
3) Other problems: Often, a consultant is brought in to work on a system installed by others. When you bid a job such is this, usually the expectation is that the system is configured correctly and no other problems exist (other than those the consultant is hired to fix). Often, of course, this is not the case and you are forced to fix other problems before you can proceed with the job you were hired to do.
The key here is communication. Make sure your clients understand up front that your bid/estimate is based on the premise that the installed systems are configured properly and working correctly, but that you may actually find hidden problems that must be fixed first, in the course of your work. Also inform them up front that this additional work could affect cost.
If (when) you do run into these problems, immediately inform the client of the problem and whether it can be bypassed for now or must be fixed before you can proceed. This serves several purposes. It keeps the client in the loop (rather than just giving them a bill for more than expected). It places the burden on the client of how (or whether) to proceed. It prevents surprises.
While a small amount of "donated" time often goes a long way to foster good will with a client (especially new ones), your clients also need to understand that you also are in business to make money and can't give your time away as a matter of regular course.
(continued)