I would urge you to consider enforcing a "no refund" policy for all aspects of your business. But let me establish one caveat here: I believe that if you fail to perform quality work, and/or do not meet the agreed upon project objectives because of your own errors, then the client should receive a refund, period. Under those conditions, that is the ethical position.
Having established that, here are some ways to protect your income from the unforeseen, the unethical, and the unintended.
Build into your proposals and/or contracts that projects are non-cancelable. Stress that they may be postponed, delayed, and rescheduled without penalty and without time limit, which provides the client with safety and assurances that the payment won't be wasted. But stress that the payments are due as specified, regardless of other issues. I can't tell you how much profit this has saved me when clients have been forced to cancel projects (natural disasters, business acquisitions, etc.) or have capriciously canceled projects (another consultant convinces them, a new boss enters the picture, etc.).
Stress that you guarantee the quality of your work, but not the outcomes (most outcomes are subject to variables outside of your direct control). Some clients will demand a unilateral cancellation clause, but they are rare. Moreover, if you start from a position of strength, you can negotiate something less draconian (e.g., 50% of outstanding fee balance paid at time of cancellation).
Incidentally, credit card providers are much happier and more amenable to your needs when you have no refund policies, and errors and omissions (malpractice) insurers actually ask in applications if you have non-cancellation provisions in your contracts.
These are particularly subject to almost arbitrary cancellation. The key is to ask for the entire speaking fee to hold the event date on your calendar. Again, honor all rescheduling. Too many low level people view canceling a speaker as a quick way to save five or ten thousand dollars and look good to a superior. Don't give them the chance.
To this day, I have a half-dozen fees in the bank from clients who cancelled and never rescheduled. Would I still honor them? Of course, subject to my availability, as would always be the case. Do I feel guilty about collecting the fees? Absolutely not. Commitments are commitments. I was prepared to meet mine.
My policy is now to provide no refunds on product sales, though I will replace books damaged or lost in transit. I made this my policy when a purchaser returned over $600 in purchases of books and tapes complaining of their "poor quality" (which thousands of customers seem to love and have opposite ideas about). I'm convinced he copied books, tapes, and CDs, and returned everything. I honored his request, but implemented my new policy.
My web site now specifies that all sales are final, though we will replace damaged merchandise, even if it's the post office that played football with the packages. As long as your products are honestly and carefully described (and even better if they are reviewed on Amazon.com and other places where third party opinions are present), purchasers should have enough information to make informed decision.
We all lose business from time to time. There's no reason not to take precautions, however, to minimize the probability.