Government contracts are indeed contracts. In the normal course of events, their terms may be enforced and the Crown held liable for a breach. However, government contracts are not the ironclad agreements they appear to be because governments may change or cancel them by enacting legislation. This paper discusses the means by which governments can make unilateral changes to contracts by statutory enactment.
Legislative supremacy is a central feature of the Canadian system of government. The federal Parliament and provincial legislatures may pass laws of any kind, including laws that change or cancel legally binding agreements, and even if the enactment has the effect of expropriating property or causing hardship to innocent parties who negotiated with government in good faith in entering into the contract in the first place. The powers of legislatures are limited only by the bounds of their constitutional jurisdiction and the existence of constitutional rights. In Canada, there is no constitutional right to compensation for expropriated property.
Just because legislatures can enact an end to a contract does not mean that they should. Using that power erodes confidence in doing business with government, and thus impairs the credit of the Crown and economic conditions in the jurisdiction. On the other hand, if democratically elected governments are to establish their own policies, they require the ability to make unilateral changes to agreements made by previous governments. If they cannot legitimately do so, then their predecessors can control policy decisions beyond the terms of their democratic mandates.