Section 1671 sets two different rules for liquidated damages depending on who the contract is with, and the difference is the whole point of the section. Subdivision (b) states the commercial rule: a provision liquidating the damages for breach is valid unless the party seeking to invalidate it establishes that it was unreasonable under the circumstances existing at the time the contract was made. The presumption favours the clause, the burden is on the party attacking it, and the test looks at the moment of contracting rather than at the actual loss.
Subdivision (c) then removes two categories from that rule. Where the liquidated damages are sought from a party to a contract for the retail purchase or rental of personal property or services primarily for personal, family or household purposes, or from a party to a lease of real property used as a dwelling by that party or their dependants, validity is determined under subdivision (d) instead. And subdivision (d) reverses the presumption: in those cases the provision is void, except that the parties may agree on an amount presumed to be the damage where, from the nature of the case, it would be impracticable or extremely difficult to fix the actual damage.
So a fixed cancellation charge in a consumer or residential context starts from void and has to be justified by the impracticability of measuring the real loss; the same clause between two businesses starts from valid and has to be attacked as unreasonable. Subdivision (a) disapplies the whole section where another statute expressly prescribes the rules for the contract in question. Which limb your contract falls under, and whether a particular charge can be defended, is a question to put to a lawyer.