The VSVAR32.bat file just modifies some environment variables (appends a directory to path, sets LIB and INCLUDE, etc.). You can always make the same changes to the main Windows envirnonment so they are inherited by all subsequent processes (from the control panel "system" applet).
Quite a few other development tools use the same environment variables (including earlier Visual Studio versions). Making the configuration changes in the main environment is not so convenient when you want to use development tools that require conflicting settings on the same PC (that's why Microsoft puts them in MSVAR32.bat instead of modifying the main environment). , so it is useful to only apply these settings when they are required, as they conflict by the settings required by other development tools. Putting these changes in the main environment casues problems if you want to use different developmemnt tools on the same PC.
The other possibility to to have your application that will invoke csc.exe modify the enviroment it passes to the child process in the same manner as MSVAR32.bat.