Triggered/immediate conditions are run in their own event list BEFORE any non-triggered events.
For example:
1. Run event once -> set counter to 1
2. Start of frame -> set counter to 2
Even though 1. is ordered before 2., "start of frame" is a triggered condition so that will execute first in its own event list (along any other triggered conditions). THEN the normal event lists are executed (frame editor, behaviors, global events). Therefore, the counter will read 1 by the end of the loop.
In other words, the triggered/immediate condition checks are done BEFORE the normal event lists.
The document Joshtek attached (Please login to see this link.) explains in what order the triggered conditions will execute. For example, you'll see "timer is less than" will be executed before "start of frame". Or "user presses" is executed before either of those.
This probably explains some odd frustrations some MMF users might have, but once you know how the system works, it's really handy to make MMF do stuff the way you want.
Edit: it's worth mentioning that some triggered conditions will still work even if they're not at the top of the event and will always be checked to be true when they're found in the main event loop/"forced" to be run as a normal condition. Unfortunately this is not the case for all triggered conditions, so just test it if in doubt.