NSIS is great for turning a set of program files into only one file! This one file can also be smaller than the set of files too.
I have a Mini Golf game that takes up ~900KB. With NSIS I have turned it into a ~380KB file.
Here's my code:
!PackHdr TEMP.DAT "UPX.EXE --best TEMP.DAT"
RMDir /R "$TEMP\MiniGolf"