Sounds to me that the Working Directory is not the Script Directory, so your relative paths are failing.
When working relatively, you should check your Working Directory first before using the relative paths.
FileChangeDir() can set your Working Directory.
As below, the script checks if the Working Directory is different to Script Directory, and if it is, then change Working Directory to the Script Directory.
CODE
If @WorkingDir <> @ScriptDir Then FileChangeDir(@ScriptDir)
FileCopy("setup\file.exe","C:\windows\system32\")
Or you can simply use the
@ScriptDir macro. This is the fullpath to the script as shown below.
CODE
FileCopy(@ScriptDir & "\setup\file.exe","C:\windows\system32\")
If
@ScriptDir is
"E:\folder" then the 1st parameter would evaluate to
"E:\folder\setup\file.exe"