Clients always seem to have plenty of reasons why your working for free is a great idea. They don’t have a budget, they can trade you something, it’s for a worthy cause, and so on. People may still be resentful even if you have a valid reason for refusing to give anything away. They may tell you that there are lots of other people who will do the work for nothing or for a lower price than you. If the client really does know these types of people, you can always politely recommend that the client contact them. The chances are that these so-called experts are nothing like you. If they did have the same expertise, they couldn’t be offering to work for free.
After following your recommendation, the client may instead come back to you with a budget that didn’t seem to exist earlier. Either that or they hired the lower-price alternative only to be disappointed with the final result.
If you do decide to waive your fee, make sure the client knows exactly what you’re giving away. Clearly indicate your normal fee on the invoice or other official paperwork and state that your fee has been voluntarily waved. This firmly established the value of your services. It also makes sure that the client, or indeed other companies that they work with, are fully aware that you don’t always work for nothing.