Some freelancers may automatically want to dump the client on the spot but that may prove to be a bad decision. After all, if you've built up a good working relationship with a client, why spoil a good thing.
That's where the art of diplomacy comes to the fore. With a bit of forethought and tact, a good freelancer can avert a disaster and turn the situation to his/her advantage.
Firstly, let's consider some instances where you should intervene and let the client know he is wrong. An obvious instance is if the client requires something that is illegal or unethical. Another time when you should speak up is when the cost of a project is so great that it will leave the client in financial difficulties. And if you think the project will be a total flop, better speak out at the start or you could end up taking some of the blame for the final result.
Once you've identified the mistake, how do you tactfully point this out?
Instead of leaping in and saying "you're wrong", start with a positive message. The client is more likely to react well if you say that the idea is good and then point out that one element will not work so well.
It's also important to give a client the benefit of the doubt if there is a legal issue. It's most likely that he is uninformed and that is one area where you can explain the consequences of his action and he will be grateful you did.
Showing sympathy towards the client is also a good move. You can say you're impressed with his planning so far but point out that there are potential pitfalls to his approach.
Compromise might be the name of the game, especially where finances are concerned. If the client comes up with a price that is unrealistic for the amount of work involved, explain that it is not viable and offer to do the work over a staggered period of time, thus extending his payment period sufficiently so that he can pay the additional amount required.
Honesty has to be the best policy but if delivered with tact and diplomacy, your relationship with the client should remain intact.