Вы зачем rowspan-ов понавтыкали где где ни попадя? По контексту у Вас сначала идет "content", затем "menu2", а на странице все это отображается в обратном порядке? Такое сделать еще суметь надо.

Судя по Вашему замыслу, у Вас должно быть так:
Код:
<table width="900" cellspacing="0" cellpadding="0" border="0">
<tr>
 * <td colspan="5">ОАО</td>
</tr>
<tr>
 * <td>adress</td>
 * <td>О Компании</td>
 * <td>Продукция</td>
 * <td>Контакты</td>
 * <td>Схема проезда</td>
</tr>
<tr>
 * <td>menu2</td>
 * <td colspan="4">content</td>
</tr>
<tr>
 * <td colspan="5">border</td>
</tr>
</table>
То, что меню у Вас сползает – это ожидаемое поведение.
По правилам таблиц HTML, все ячейки строки выравниваются по высоте самой "высокой" ячейки в этой строке. В данном случае самая высокая ячейка получается address, вот и меню у Вас по этой ячейке выравнивается.

Примите также к сведению, что в одном и том же документе не может быть двух и более одинаковых значений атрибута id. Значения данного атрибута должны быть уникальными в пределах одного документа.

А переписывать можно и 100 раз.
Потратьте некоторое время на вдумчивое чтение Спецификации HTML 4.01.
Это Вам очень поможет.