Hola,
Lo mismo es que hay "alguien" que ejecuta más de una vez el programa y de ahí el lío... acaso es que el programa no debería ejecutarse más de una vez por cada máquina, es decir, no debería haber más de una instancia del programa en ejecución.
Una buena solución para evitar que un programa mantenga dos instancias en ejecución la proporciona el compañero Román en su
página Web con el
componente UIApp.
Claro que no sé si en tu caso bastaría con algo así o habría que mirar por otra solución o soluciones...