I didn't give all of the code a thorough debugging, but this may work:
Try adding the following to your CSS #header { background: url(/i/top-bg.jpg) #fff no-repeat center; height: 318px; width: 740px; text-align: left; _margin-left: 1px; }
The underscore hack applied to the margin-left will only apply to IE browsers and should hopefully push the entire header over just one pixel in order to get things lined up.