If as you specified you can't or don't always have the ability to change the batch files you actually have a couple of problems.
1. Permissions
2. Mapped Drives
Permissions can be fixed by specifying the account details in the StartInfo properties OR change the account the program runs under as a service.
Mapped Drives, if there is no user logged in then no mapped drives will exist regardless of the user account specified in the StartInfo properties or used to run the service. The only way to get the mapped drives back is to use to following before you run the process for the batch or executable file;
if (Directory.Exists(driveletter) == false)
{
System.Diagnostics.Process.Start("net", string.Format("use {0} {1} /user:{2}\\{3}", driveletter, uncpath, domain, username));
}
I have had to use this same method previously with a windows service to get access to Timberline data stores that could only be accessed from mapped drives and while the service was running under an account with permissions to access the network resources without the mapped drives it couldn't do anything.
If you have multiple mapped drives then a config file would be a good idea so that you can recreate those drives you need.