Two ways are avaialable to keep layout based triggers from firing when other scripts change layouts and/or records:
Use a global variable to disable the triggered scripts:
If [not $$TriggerOff]
//your current script steps go here
Then you can use Set Variable to assign True to $$TriggerOff in any script where you need to disable the script triggers and then reset the variable to false at each exit point in the script to re-enable the triggers.
Use a different layout for these scripts that don't have any triggers. You can creat simple blank layouts that refer to the same table occurrence as your current layouts. Your script can switch to this layout, do the finds and sorts that you want, then switch back to the trigger equipped layout as the final step.
Interesting. I am actually moving from a layout based on the same table that does not have triggers so I shall freeze screen and perform my finds etc in there, then switch to the list layout.
I also like the variable technique. I am trying to think of a way I can use this in another problem I have.