Eu normalmente movo as pastas para minha partição separada e então as simbolizo de volta na pasta C: \ Users. Isso tem a vantagem de que aplicativos herdados que tendem a quebrar em caminhos personalizados podem acessar a pasta como de costume.
Esse snippet de script em lote deve fazer o que você deseja. Note que você tem que executá-lo como administrador para ligar simbolicamente ao trabalho ( não testado, YMMV ):
::Change this to the folder where you want to store your data
set DESTFOLDER="Z:\Path\on\other\partition"
::Switch to the current user's profile folder
::Change this to the folder you want to move from if you are moving another user's data
set SOURCEFOLDER="%USERPROFILE%"
pushd "%SOURCEFOLDER%"
for /d %%d in (Documents Music Pictures Videos) do
(
::Move the folder to the new partition
move "%%d" "%DESTFOLDER%\%%d"
::Symlink it back to the original location
mklink /d "%%d" "%DESTFOLDER%\%%d"
)
Isto é apenas o topo da minha cabeça, mas é semelhante ao que eu uso para a minha instalação do Ubuntu, onde eu symlink todas as subpastas da minha pasta home para a minha partição de dados NTFS.