I'm new to giving advice rather than asking for it, but Id consider checking what account is being used to run your script - if its set to run with admin rights,(on the program, environment tab) then it runs under the local system account. That being the case I think your script will struggle with this bit -
set userdir=%localappdata%\Microsoft\Office[/style]
as it will be trying to use the localappdata path for the SYSTEM user.
When ive done things like this in the past I've used VB to grab a profile list from the registry and then carry out actions for each individual profile. Alternativly, you can set the job to 'run with user rights' and that will at least test the theory.
To help with testing, you can use psexec (free tool, just google it) to run a script as the SYSTEM user rather than as your user elevated.

Sorry for any repetition - did something really odd there and didn't notice other replies.
Regards
Colin
<message edited by colin on Tuesday, April 24, 2012 5:05 AM>