I'm assuming that this is in the nature of a chatbot/servicebot, rather than just some scripts that run "behind" your own nick that you're using for general chatting.
The way I would do this is to check specifically if the script is running. My first inclination in that direction would be to have something like
ctcp *:ISMYBOT:*:/ctcpreply $nick BOTHERE Running as $me
ctcp *:BOTHERE:*:/dontrun
in the remotes section, and when the bot starts up, have it send
/ctcp #botchannel ISMYBOT
to see if there are any other copies running - if there are, they'll reply with a BOTHERE, and the current copy will put itself into a "don't-run" status (based on the code that you put into the alias "dontrun").
This isn't perfect; it doesn't handle such cases as the currently active bot leaving (all other copies remain in the don't-run state) or selecting which other idle copy (if there are multiple ones) should take over operation in such a case. It does, however, adjust for ghosts (a ghost won't reply to the CTCP).
(Note: You can change the "ISMYBOT" and "BOTHERE" ctcp messages to whatever you want; the more likely it is to be unique to your bot, the better.)