When I do consulting work, I always let my clients know when something is outside of my expertise. That is just the ethical thing to do. They are paying decent money for my expertise, so BSing them is highly unethical.
That all said, I almost always have a subject matter expert in any of the areas I do not cover. I am always more than happy to introduce my clients to them.
You can always make your money... but fixing reputation is HARD.
Well, that's a difficult one, and one that will test your ethics. In theory that should never come up; consultants costs more than employees in part because they should never need any on-the-job training.
Having said that, lots of consultants and consultancy companies have made their way up by getting on-the-job training while getting paid by the customer.
Or say nothing and quietly outsource to another consultancy?Be very wary of that one. A smart client will want to interview all project members in person, and will have non disclosure (confidentiality) agreements in place. If you farm out parts to someone else, then you could be in violation of these agreements.
A large consultancy shop would handle this by bringing in an internal resource with the required knowledge. Perhaps you could find a sub-contractor with the needed knowledge whom you trust? Then openly tell the customer that you have the overall project, and the single-point-of-contact project management responsibility, and you're working with this other well-reputed company in order to assure high quality on all areas of the project?
Let them know you don't have expertise in an area, but offer to be a little bit of a project manager and find them another contractor. It will be up to you to work with them and coordinate your efforts. From the client's perspective, it shouldn't be any different.
I suggest be open about what you can and cannot do. When sitting down with a client and taking a job this is the best time for setting expectations. So I evaluate a gig on how critical the portion of work that I'm not an expert on is to completing the overall gig to determine if I'll accept conditionally or just reject it.
Saying no to a job that isn't right for you as a good contractor is critical. Your reputation stays clean, the possible future client knows you’re honest and your work history of successful projects remains higher than average. In turn this should help with negotiating for a higher price in the future. Businesses are always willing to pay a premium for things that are more certain.
I agree with pretty much everything written so far - don't mislead the customer and don't try and rip them off, etc, but I wanted to share a slightly different perspective from recent experience.
Not too long ago, I was asked to do a consulting engagement where I wasn't sure I was particularly well qualified. However, on a colleague's advice, I went ahead and it turned out to be very successful for me and for the client. It seems that my reluctance to become engaged was based on a lack of confidence rather than a lack of competence.
Although I wasn't an expert in every area of the target subject, I was able to get up to speed pretty quickly by researching (reading publicly available materials and through my contacts in the industry), and the client was very happy with my contribution. It is often the case that your depth of experience and structured approach is what a client lacks, as their people are usually so focused on the day-to-day activities they can't see the wood for the trees.
(I think this line of thinking is more pertinent to business consulting than say technical/development consulting - it's obviously no good thinking you can take on a hard-core C++ assignment if you're a Ruby-on-Rails guy...) HTH.