The best way to handle reboots are by using a Provisioning Template for your distribution or a Custom Script. In the Provisioning Template you can use the reboot option and in a Custom script you can control this by doing a reboot and than a SLEEP followed by a REMPING to see when the system is on again.
For a good discussion on how to install software as administrator, look here:http://community.landesk.com/support/message/73055#73055
I tryed to do it with a Provisioning Template but I wasn´t able to fix it. So for everyone who has the same Problems, here is the way i did it.
I build 2 Packets, one with the uninstall and the other with the install files. Then I Build 2 Querys, one who look if the Software version is the old one, and the other who looks if there is no Software installed. After maping the 2 Querys to the Packets everything works fine.