The most common cause for such problems is session zero isolation. But since that was introduced in Vista, and you experience the problem with XP, we can probably rule that out.
Which then leaves the user as the most likely explanation. It's quite common for programs to fail when run from the LOCALSYSTEM account. There are a multitude of reasons why the program could fail. Diagnostics from the failing program would lead you to the explanation.
In any case, you are not supposed to use the LOCALSYSTEM account. The official policy from Microsoft has been, for at least 10 years now, possibly more, that you should not use the LOCALSYSTEM account for your services. I suggest that you run your service under a user account created specially for it. But in the short term, to test the theory, just use one of the existing accounts on your test machine.
If that solves the immediate problem, it's still possible that you may encounter session zero isolation problems on operating systems which implement that feature.