There shouldn't be any difference in the behaviour of a local or gloabal variable between the development environment and the executable. The problem is most likely due to something else which doesn't run well in the exe. There are ways of troubleshooting this. First, was the EXE set to run when the module loads? Second, When you say it worked, did you run it on the PC or the cFP? If it was from the PC, try running it from the cFP and see if it works. If not, download your application to the unit, use an FTP server (There's one in MAX - right click on the unit under remote systems and select File Transfer) to copy C:\ni-rt\startup\startup.exe to the same directory on your HD. Now, when you connect to the cFP using LV, you'll see the front panel of the running app and you can use it to see where the error is.
Last thing, when exchanging data between loops, a local would be enough - a global is used to move data between different VIs. For a boolean trigger, a local variable should be enough, but you should take a look in the Advanced>>Synchronization palette. There you have functions which are designed for these things, like queues and notifiers. Using them, you could have the loop running only once every 24 hours.
___________________
Try to take over the world!