The game's handling of certain variables in memory is a bit buggy - often they're not cleared when they ought to be (like
this, for example). I figure the same happens here and when your game settings are dumped to civ2.dat, the uncleared cheat flag is written to the file as well. Thus every time you fire up Civ2, the data from civ2.dat is loaded, together with the cheat flag. I've never had this happen to me using Civ2: Test of Time, so maybe it was fixed by this version - or maybe I'm just lucky. The bug and the solution have been known for some time.