I can't include the whole batch file because it includes some proprietary info that can't be shared with the public. However, I have included a few snippets here that should give you the right idea. We do not use the "Startup" menu; we run the scripts from the Windows logon directory on the network. This does not mean that the "Startup" menu approach is wrong; it all depends on what's easiest for you to propagate to all the users who need it. Please note that we install from an admin image on the network, and we do service pack updates to the admin image manually.
***************
rem Set SPlevel to whatever service pack is the latest for you
rem Test for update already applied
dir "%ALLUSERSPROFILE%\Start Menu\Programs" | find "SolidWorks" | find "%SPlevel%" && goto NoUpdateNeeded
rem Individual users must have admin access to install service pack updates themselves
rem Test for appropriate group membership before execution
net localgroup administrators | find "%USERNAME%" || goto ErrorNoPerms
rem Specify location of SolidWorks admin image in the variable SWinstImg
msiexec /i %SWinstImg%\english_i386_solidworks.msi INSTALLDIR="%programfiles%\SolidWorks" UPGRADESWINSTALL=1 /qb /L*v "%SystemDrive%\var\sw2004.log"