In a development environment, where there may be several projects, each with sorted engines, tool requirements and differing versions of maya - and you want to deploy changes continually and rapidly along with content development in source control (like perforce), but everything is project or branch realtive there are alternative setups.
project root,
c:\depot\
and then a tools dir, something like:
c:\depot ools\maya
in here, you can put your 'setup':
c:\depot ools\maya\scripts\userSetup.py
* this file does all the loading, just as it would if it was in your user folder
Then in the root, you can set up a couple .bat files for your project
First, one that sets up env and such:
c:\depot\proj1_env.bat
And in there, set up things like:
:: Setup project environment
SET ROOT=C:\depot
SET CONTENT=C:\depot\proj1dev\content
SET GAME=C:\depot\proj1dev\game
SET TOOLS=C:\depot ools
:: MAYA settings
set MAYA_MODULE_PATH=C:\Depot ools\maya\modules
set MAYA_SCRIPT_PATH=C:\Depot ools\maya; C:\Depot ools\maya\scripts\mel;C:\Depot ools\maya\scripts;
set MAYA_SHELF_PATH=C:\Depot ools\maya\prefs\shelves
set PYTHONPATH=C:\Depot ools\maya\scripts\python;C:\Depot ools\maya;%PYTHONPATH%
:: Maya version for this project1
set PROJ1_MAYA_VERSION=2011
Then have another .bat file, for launching Maya
c:\depot\proj1_maya.bat
And that would have code like:
:: drive
PUSHD %~dp0
:: Keep changes local
SETLOCAL
:: Initialize env settings
CALL %~dp0proj1_env.bat
:: launch maya
start "" "%ProgramFiles(x86)%\Autodesk\Maya%PROJ1_MAYA_VERSION%\bin\Maya.exe" %*
:: Restore previous directory
POPD
ENDLOCAL
This method precludes the user ever needing to install or update anything, they can just sync the latest from source control and run the proper .bat file to launch maya.