Just a couple of quick points..

Many apps don't like being installed from a UNC path - map a drive letter before you start and reference that drive for your application install point. Will make updating easier too, especially if "stingray" is replaced with "mantaray" ;\)

I'm not sure I like the START WAIT options..

Ditch the reboot, and set a $NEEDREBOOT flag, then "If $REBOOT" - reboot! With your method, only one app can perform a reboot. You can usually install several apps that require reboots and reboot once. (key word, "usually")

Also don't like flag files.. use an INI with sections for each app. Each section (if it exists) would contain an install date. That would allow you to perform updates without having to remove flag files first (or leaving old, outdated flag files behind). For example:
 Code:
; Install "Glenn's Great Garbanzo App"
; get the app's release date
$NewDate = ReadProfileString('Y:\INSTALL.INI', 'GGGA', 'Date')
;If the local date is older than the release data, or the local date is blank, install
$MyDate = ReadProfileString('C:\MyInstalls.ini', 'GGGA', 'Installed')
If Not $MyDate or $MyDate < $NewDate
  ; run the install
  Shell '%COMSPEC% /c Y:\ggga.exe /silent /log c:\install\ggga.log'
  ; update install date if successful
  If Not @ERROR
    WriteProfileString('C:\MyInstalls.ini', 'GGGA', 'Installed', @DATE)
  EndIf
EndIf

Be aware that the error checking above is fundamental - it checks for NO ERRORS, however, some apps return a specific error indicating that the install was successful, but a reboot is required to complete the install. You'll need to identify these situations and handle them accordingly -
 Code:
If Not @ERROR Or @ERROR = 51200
  ; Update install date
  WriteProfileString('C:\MyInstalls.ini', 'GGGA', 'Installed', @DATE)
  If @ERROR = 51200 ; need reboot, set flag
    $NEEDREBOOT = 1
  EndIf
EndIf
Glenn
_________________________
Actually I am a Rocket Scientist! \:D