Что вы пытаетесь достичь, что существенно отличается для защищенных пользователей? Я видел некоторые проблемы с всплывающими окнами, но в остальном чистый JavaScript имеет тенденцию быть менее затронутым. Если вы обнаружите, что блок кода не будет выполнен, почему бы не выполнить проверку после попытки выполнения, чтобы увидеть, соответствует ли документ ожидаемому состоянию, и предупредить, если нет.
Если используется ActiveX, MS имеет API защищенного режима: http://msdn.microsoft.com/en-us/library/ms537316.aspx
Защищенный режим настраивается, поэтому у вас нет надежного способа его обнаружения на основе нарушения действия. И многие пользователи отключают UAC, поэтому обнаружение по версии также не будет работать (не говоря уже о том, что у вас может быть та же самая головная боль с IE 8. Всегда лучше проверять, работает ли что-то, а не предполагать по версии.)