Размер td изменяется, потому что div, создающий ширину td, вынимается из естественного потока документов.На этом этапе td считает себя не имеющим отношения к div.
Вам нужно будет установить ширину td в соответствии с шириной div, если вы хотите, чтобы он сохранял этот размер.
ОБНОВЛЕНИЕ
Вот один способ, которым вы можете довольно быстро получить то, что вы ищете: http://jsfiddle.net/2A2rR/3/ (это не идеально, но вы получите общее представление)