Je header en footer zijn geen 1000 px breed, maar 1006, want links en rechts komt er nog 'n border van 3 px bij.
Je moet div#page en div#middle dus ook 1006 px breed maken. (Omdat overflow standaard op visible staat, wordt het te brede deel van footer en header gewoon getoond.)
Vervolgens moet je #menu en/of #content ook 6 px breder maken. Je kunt #content ook naar rechts floaten, staat-ie ook gelijk.
(Terzijde: ik zie dat je voor 'n id Content gebruikt. Is geen goed idee. Voor hoofd- en kleine letters in css zijn geen regels, dat wil zeggen dat browsers dat verschillend uitleggen. Waardoor 'n fout met 'n hoofd/kleine letter bij testen makkelijk onopgemerkt kan blijven, maar wel problemen kan gaan geven in 'n niet geteste browser, omdat die juist wel of juist geen verschil maakt tussen content en Content.)
Open in 'n nieuw tabblad e.d.: het gebruik van target wordt al zo'n tien jaar afgeraden. In de komende (en deels al werkende) html5 is het gewoon helemaal verboden (behalve in beperkte mate voor iframes, meer beperkt dan nu). Het was bedoeld voor frames, en frames hebben echt gigantische nadelen (zijn ook verboden in html5). Tegenwoordig heb je veel betere technieken.
Je kunt het nog wel gebruiken als je 'n transitional doctype gebruikt in plaats van strict, maar daarmee blokkeer je dan gelijk het overschakelen naar html5 in de toekomst. transitional is bedoeld voor bestaande pagina's, waarbij het ombouwen te veel werk is. strict voor nieuwe.
Tegenwoordig wordt er (terecht) vanuit gegaan dat je als sitebouwer niets te maken hebt met hoe mensen nieuwe vensters of tabs of wat dan ook beheren. (Vrijwel) elke browser heeft inmiddels de mogelijkheid om de gebruiker zelf te laten kiezen of ze 'n nieuw venster, tab huidige tab, ... willen gebruiken.
Je kunt 't wel met JavaScript gaan simuleren. Dan is 't valid en kun je toch target gebruiken. Maar ook dat werkt niet altijd. Ik heb Firefox zo ingesteld dat jij, al ga je bloot op je hoofd staan, geen nieuw venster bij mij kunt openen

Oftewel: ik zou het gewoon niet gebruiken.