It's quite a simple system, help events are thrown all the time and a help advisor just keeps track of which ones have already been shown (and loads and saves this list to file on startup/shutdown). The nice thing is that the calling code is dead simple, so I don't mind too much about scattering it all over the place as the bulk of the code is still quite centralised.
So far I've got about 20 help popups, which sounds like quite a bit but they're all short one liners so you're never really out of the game for more than a few seconds or so. I've got a couple more to do with menus and controls, but it's almost done. [grin]