This is a really old topic but I finally found myself in the same situation now, where I always want modect but I only want alerts in a specific run state. I mulled over various solutions and finally decided on this one.
let's say you have "Monitor1" on Modect all the time, saving events. If you want to have Monitor1 only email you during a given run state, create a copy of Monitor1 (I call mine "Monitor1_Armed" corresponding to my "Armed" run state). Then in your run states, make the two monitors mutually exclusive. In other words, in one run state, Monitor1 is "Modect" and Monitor1_Armed is "none". Then in the other run state, Monitor1 is "none" and Monitor1_Armed is "Modect". The run state basically toggles between the two monitors.
Now recreate the zone on the new monitor. If you don't like writing down lots of numbers, here's a shortcut. Go into phpmyadmin or your favorite mysql editor, go into the zoneminder database, Zones table, delete the default zone for the new copy of the monitor, and copy the zone record for the original monitor over to the new monitor. In phpmyadmin this is pretty easy - just edit the zone record for the old monitor and instead of saving the edits, further down the screen select "insert as new row" among the options. I incremented the Zone ID number, since it seemed the right thing to do.
Then in your filters, when you want an email, just look for an event on the "Monitor1_Armed" camera instead of "Monitor1". If your filter sees an event on "Monitor1_Armed", it will email it to you, and by virtue of your run states, that will only happen when Monitor1_Armed is in "Modect".
It is kind of a kludge - it would be great if there was a way for the filter to specify if another monitor was in a specific state or not, but this will do for now.