If I make a copy of EVERY single file on my hard drive, my programs won't work any more and I'll have to re-install them. This confuses me because the registry is stored on the hard drive, along with all windows files. If every file was copied, I don't understand why a re-install is needed.
If you did copy every single file in any hard drive, then you would have also copied your OS and, more importantly, your User files.
The Windows Registry can be understood as having two main parts: the part that every user in that machine has in common and the part every user has individually. If every file has been copied, then everything would run as well as it did on the previous machine1.
However, most times, users only backup the "Program Files" and what's on the "User's Documents" folder. These locations don't have the files that store the Registry entries associated with the programs stored in Program Files. Those locations can be found in this Wikipedia article.
The main problem here is that those programs may depend on whatever values there are in the current machine's registry and those values are created when installing the programs.
As such, if you did what most users do when they copy their hard drive, then you would need to reinstall the programs because, as stated, the registry entries that are needed for the programs to work don't come along.
1 - If the machines were also identical, in which case the drivers would also be.