I think you should study the box model. http://www.w3schools.com/css/css_boxmodel.asp
Any time you change or add or subtract a margin, a padding, etc. you chage the over all height or width of the box (div).
The background image has a width of 960 pixels! The #content-2-1 div has a width of 940 so its no wonder you can't see the right side of it.
The 10px right/left margin on the #content-2-1 is used to position it so you can see the border the image creates.
I don't know why you "I've got a thin black border across the top of the #content-2-1 div,"...
Is there a way to specify a pixel length for a border?
No, not to a border, you can only control it's thickness.
There is a trick you could use to do this. Make a div with no background and position it in the #content-2-1.
margin: 0 auto;
border-top: 1px solid black;
and the html
A finally your last paragraph: "I'm also trying to move the nav div up a little closer to the header div and also away from the top edge of the #content-2 div.... (and others)" What nav div???
Right now your page has 3 divs the header, content-2, and the footer. You can place another div anywhere in that line up and things will work out IF you don't use positioning on them Like 'absolute' or 'float'. What goes on in those divs should not effect the page layout.
" I've changed the padding values for both divs" What TWO divs???? If you change the padding your changing the width[SEE ABOVE BOX MODEL].
If your adding a nav div make the width 960. if you add padding change the width. You should include code when you ask about changes.
If the nav div is still giving you problems next time give me all the code your using.