I agree with Blizzard about the one variable approach for all the reasons highlighted. I'll just add that when you're setting up all the variables, try to have them neatly organized. For instance, all my Town variables are in a marked area, and then spaces for all the story segment variables have been reserved. The organization just helps when you're tracking them down in the listing.
My dungeon setup is a tad different, I've called the variables I use Dungeon Trigger, Obstacles and Treasure. They're just used when you're doing intermittent stuff like solving puzzles. They're used in combination with local switches, so the end result is that if you're in the middle of a puzzle and don't finish it, it gets reset if you leave.
Also, for an extra layer of redundancy, you can use switches to mark that you've finished a story segment or dungeon. It just offers a bit more ease or flexibility, especially if you're including npcs with updating dialogue.