If you distribute scripts that depend on files use $scriptdir then it doesnt matter where the users loads the zip to.
I have no clue why it wouldn't write though if its not any of the above. Maybe send him a debug alias to see if that folder is a dir the file is a file and wheter all the vars are set ?