I would qualify that answer.
When you set a % for a table, that is the % of the parent container, whether
that's the browser viewport, or another page element, like a table or a div.
When you set a % for a cell, that is a minimum % of the table's width, and
all cells in a row can be no wider than the table itself UNLESS there is
content in the table that forces a cell to be wider (like a 300px wide image
in a 200px wide table). This is a very hard concept to get - for example,
if the stated widths of table cells are greater than 100% of the table's
maximum width, then they will be reduced to the extent they can be reduced,
each proportionately to the width stated for the cell. Is the aggregate
widths of table cells are less than the 100% table width, each cell will be
enlarged, again proportionately.
If you think about these qualifications that I have just made, you will
conclude that cell dimensions are mostly a fiction. Instead of thinking
about cell dimensions, and trying to hammer the table's square peg into the
round hole of what you want, think about how to add content to the table to
allow it to collapse to exactly the right shape.
This latter method of thinking explains why 'spacer.gif' or 'shim.gif' are
found so often on the web. The tables have been 'shimmed' so that the size
is fixed in place with transparent GIF images.