There are so many ways a startup script can fail... three things I would do to investigate:
1. On the failing workstation, generate resultant set of policy (Commmand prompt, then type rsop, enter). This will tell you whether your policy is applying correctly - look under computer config and startup scripts for your script, it should have the last run time next to it. If that's blank, your script's not running.
2. If the script is definitely running, monitor it using something like pslist from another machine, to maybe see what part of the script it failing (https://technet.microsoft.com/en-gb/sysinternals/bb896682.aspx). Pslist \\workstation -s -t is my favourite, as it give you a real time parent-child process tree.
3. If you're calling an MSI, you can look in Event Viewer for messages logged by Windows Installer under Applications.
Beyond that, it's down to some difference between a user environment and the System user environment, those are less easy to pin down...