I had to do this once. I created an app object that created an empty text
file on the local hard drive and then forced a reboot after the
distribution was done. I made my installation object dependent on that
file's existence to run.

A good way to prevent the first app object from looping (I've had some
issues with 'run once' not working) is to make it dependent on the file not

Hope this helps.