Instead of numbering hexes with a four digit set, use X:Y where both X:Y are ranges from 1 to the maximum value of some die type (a d10 for a hundred hex map, a d20 for a 400 hex map, etc.). You draw up a list of generic events that represent an external force somehow influencing whatever normally resides in that hex.
Then, instead of predetermining the hex locales where these events will happen, you roll 2dwhatever with one determining the vertical coordinate and the other the horizontal coordinate whenever you feel like, with the event happening in that hex.
So, for example:
Event: A black dragon (HD7) swoops down to burn anything it finds - people, monsters, buildings and PCs.
You roll 2d10 and get 7 and 9, so in hex 7:9, a black dragon comes swooping down and attacks the village of Bumburg (having already determined prior to play that Bumburg is in that hex). If the PCs are in that hex, well, great. If not, well, they can always stumble across the effects later. Perhaps a month later in game, you roll again to see where the dragon swoops down this time. And so on.
I think this a very efficient and simple way of making a game world feel organic and evolutionary rather than static. Ideally, you would want your table of events to be a bit more detailed and linked to the geography of the hexmap, of course - so, to continue with the above example, you would have something like:
Event: A black dragon (HD7) swoops down to burn anything it finds - people, monsters, buildings and PCs. It's lair is d6 hexes to the [compass direction corresponding to second d6 roll where 1 = North]; roll again if the result makes no sense (e.g. it's in the sea).
And, of course, you (or at least, I) would want something more rigorous than just rolling such events whenever you feel like it. I'd probably draw up a table of 100 events for the campaign area, and assume a 10% chance per day of one of them happening. Instant organic random campaign happenings!