Dear Maniaberita
Besides running from the local machine, you could consider running a "small" executable to run your main programs.
Let your main program be MAIN.EXE.
The job for main.exe is to check for updates at the server level. If the program to execute in the local machine is older than the one in the server, update the program(s) in the local machine by copying it (them) from the server. This way you'll make sure the executable running is the latest version.
Another thing you could do is to create small executables from your sub-programs and then run them from your main exe.
For example, if from your main window you call FormA and FormB and FormC to be executed, have FormaA be an executable, FormB be an executable and FormC be an executable. That way you will have small exes instead of a big papaya lonely-exe. This small exes will load faster and in the long term will require less down-time in case a change is made in one of them because you will only have to shut down the client(s) using that exe.
I hope that helps
Rianeiro
rianeiromiron@yahoo.com