The best setup program by far is InnoSetup, the most of us use it for programm instalation, is a free for use even for commercial applications.
http://www.jrsoftware.org/isinfo.php
It works based on a Script "compiling" all your program resources (EXE, DLL, DBF, etc) and "melting" them all together into a single INSTALL.EXE file.
It's fully customizable, you can create directories, indicate where to place certain files, such DLLs, you can also create or modify entries in the registry or register DLL for Activex.
It's multilanguage also, you can specify in which language you want the installation to be performed.