It is true in some circumstances. If the parties are doing business using one party's standard terms of business, the contract must be fair. However, if the parties have negotiated the contract, there is no requirement for it to be fair.
In Bates vs Post Office, the Post Office tried to argue that the subpostmasters contract could not be their standard terms of business as they weren't in the business of running sub-post offices. The judge, quite rightly, rejected this argument. So, whilst Thomson is correct that contracts don't have to be fair, he was wrong in thinking that the subpostmasters contract didn't have to be fair.