Tabellen haben die Eigenart, je nach Inhalt die Spaltenbreiten anzupassen.
Wenn das Inputfeld breiter ist als der Text, wird die Spalte dadurch vermutlich auch breiter - das liegt auch ein bisschen am Geschmack des Browsers.
Idealerweise definierst Du die Breite der Tabellenspalten, indem du in der ersten Reihe <td>s das width=""-Attribut entsprechend setzt und auch das Inputfeld per CSS auf die richtige Breite bringst.
Der size-Wert ist nicht mehr von Bedeutung, wenn das Input-Feld per CSS auf eine gewisse Breite gebracht wird.