I have my site laid out the way I want it, but Each page will have a lot of the same stuff, only thing different is the content of the #main div. Should I just copy and paste everything in every file? Wouldn't that make making changes a pain? Is there some way I could make links load html into the main div (in an unhackerish way) ? I'm positive the only difference for each page will just be the content of the main division.
you could use PHP to include files (example here). But you need to know how to setup PHP and some basic knowledge of coding for that.
Might be worth looking at Perch - a simple CMS, easy to retrofit:
see also Server Side Includes (SSI):
webby might be also be a solution; it handles having a bunch of pages sharing a layout. It requires ruby (on your development machine) to work, but if that's not a problem for you check out http://webby.rubyforge.org
It generates static HTML that can be put on any server; it also has some pretty cool features, like autobuild, where it builds every file in your site every time you change the layout.