Ok. This works. I tested it on my machine and no errors.
Took a while cause I accidentally fubared my machine and had to reboot 
It assumes that the R drive is already mapped.
Keys taken from MS document: http://www.microsoft.com/windowsxp/using/networking/learnmore/honeycutt.mspx
Code:
$Key = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
$Redirected = ReadValue ($Key, "My Docs and My Pics redirected")
Select
Case $Redirected <> "Yes"
MD "R:\My Documents\My Pictures"
?"Error: " @ERROR @SERROR
WriteValue ($Key, "Personal", "R:\My Documents", "REG_EXPAND_SZ")
?"Error: " @ERROR @SERROR
WriteValue ($Key, "My Pictures", "R:\My Documents\My Pictures", "REG_EXPAND_SZ")
?"Error: " @ERROR @SERROR
WriteValue ($Key, "My Docs and My Pics redirected", "Yes", "REG_SZ")
?"Error: " @ERROR @SERROR
$kill= EnumProcess("explorer.exe",1)
Case 1
?"No changes needed."
EndSelect
;DO NOT change anything below this line!! This UDF is ready for use as it is.
Function EnumProcess($exe, optional $terminate, optional $Computer)
Dim $winmgmts, $ExecQuery, $Process, $id
If NOT $computer
$computer=@wksta
EndIf
$winmgmts="winmgmts:{impersonationLevel=impersonate}!//$COMPUTER"
Select
Case Val($exe)>0
$ExecQuery="select * from Win32_Process where ProcessId='$exe'"
$GetObject=GetObject($winmgmts).ExecQuery($ExecQuery)
For Each $Process in $GetObject
If $terminate
$=$Process.Terminate
EndIf
$EnumProcess = $Process.name
Next
$GetObject=''
Case VarType($exe)=8
$ExecQuery="select * from Win32_Process where Name='$exe'"
$GetObject=GetObject($winmgmts).ExecQuery($ExecQuery)
For Each $Process in $GetObject
If $terminate
$=$Process.Terminate
EndIf
$id=$Process.ProcessId
$EnumProcess = "$Id" + "|" + "$EnumProcess"
Next
$EnumProcess=Left($EnumProcess,Len($EnumProcess)-1)
$GetObject=''
Case 1
Exit 1
EndSelect
EndFunction
If you have any error please post your windows version and SP and the kix version you are using.