[Passin, Tom]
In almost all cases I have had, surrounding the file name with double quotes takes care of any problems. For the same reason, it is good practice to write "%1" (with quotes) for the argument placeholder of command lines.
I recommend trying this first, before resorting to the 8.3 syntax.
It probably won't help. Things executed from the shell do quote processing, because the *shell* does quote processing. Things passed directly to a Win32 API call often don't get that (mixed) benefit. The basic Win32 API CreateProcess() call splits arguments on whitespace, even when the whitespace is inside double quotes (well, except for the first part of the command line passed to it -- it does special-case quotes to get at the executable path, but quotes don't mean anything on the rest of the command line passed to it). Running as a service eventually has to call CreateProcess() under the covers.