Чтобы убедиться, что установщик работает от имени администратора, используйте этот код:
RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on)
!include LogicLib.nsh
Function .onInit
UserInfo::GetAccountType
pop $0
${If} $0 != "admin" ;Require admin rights on NT4+
MessageBox mb_iconstop "Administrator rights required!"
SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
Quit
${EndIf}
FunctionEnd
Если это проблема, это означает, что она действительно была повреждена и на XP (на самом деле, на любой версии NT), выпросто забыл проверить как не администратор.
CopyFiles просто вызывает SHFileOperation, но, конечно, могут быть некоторые критические изменения между XP и Vista + ...