For how the events get triggered, I can mostly draw from experience with FF6, which has several ways (and this gets convoluted very quickly, so bear with me...)
Tile triggers: These always trigger by stepping on a tile (although some of them branch to "do nothing" when certain conditions are not met, for instance, the event it is set to do once has already occurred).
Map loaded triggers: Each map has one and only one. This can be used to load different music conditionally, or to make tile-patches to a map (like for opened treasure chests, for instance, although FF6 has some other automated way of doing that which takes the chests out of the picture). These should be able to handle whatever changes you expect the map to need (FF6 has to reload the map any time you visit the subscreen).
NPC triggers: These are triggered by "talking" to an NPC. That's handled by a pointer to an event. Interestingly, FF6 has an event command to "change event pointer for NPC xx" so that you can actually have it change based on another event. This is only mildly useful, as it has no inherent memory, so you still need event bits if you want the changes to be persistent.
Event triggers: Well, technically, you're just calling a script from another script. This is obviously important for several reasons.
Item-use triggers: This is not too common, but an example is the use of a Tent (changes the sprite, music temporarily goes to nighty night, saves are written out, etc.). These are hardcoded in FF6, but with a good automated way of doing it from the item data, this could be very useful.
I'm sure there's at least one more that I'm forgetting...