I have used both CopyFile and File when writing an installer. Here are some examples that might be helpful:
SetOutPath $INSTDIR
File ./foo.bar
# This tells the NSIS compiler to look for foo.bar and
# compress it into the installer. If you have your
# installer executable on the CD, you DO NOT need to package
# foo.bar separately. When your executalbe is run on the
# end user's machine, foo.bar is extracted and placed in
# $INSTDIR
CopyFiles $EXEDIR/foo.bar $INSTDIR
# This tells the compiler that when the installer is run,
# there will be a file called foo.bar in $EXEDIR, or in
# your case the DVD you're putting the installer on. When
# you use CopyFiles, the compiler DOES NOT compress foo.bar
# into the executable, and you have to supply foo.bar
# separately. In our example, it will copy foo.bar to
# $INSTDIR only if foo.bar is a separate file and it
# resides in the same directory as your installer
So if you have space limitations, it would be wise to use "File" whenever you can in your installer. This will compress all your files into one executable. If you want a third pair of eyes to look at your script, send it to:
joe.jmcc00l@gmail.com
Hope this helps!
Joe