Ну, предметно, так целые книги написаны :)
Но основная проблема в том, что у пользователей разная ширина экрана.
Поэтому если вы у себя сделали три колонки и красиво разместили сверху шапку в виде рисунка, неизвестно, что увидит пользователь. Есть два варианта указания ширины объектов, таких как таблицы, в точках или в процентах от ширины экрана, как правило, используются проценты. Это надо учитывать и это связывает руки. Рисунки же всегда будут показаны в соответствии с их размерами в точках.
То, что выглядит красиво при одном разрешении, далеко не всегда будет таким же при другом. И надо учитывать факт, что пользователь, возможно, захочет увеличить размер шрифта. Разные браузеры делают это по-разному.
То есть, дизайн, как бы плавающий, он более как бы "логический". Нужно проектировать не то что будет, а то, что может быть.
Сторонняя реклама тоже может сильно испортить дизайн у некоторых пользователей. Ну и так далее. :)
В общем, надо учитывать что есть, как минимум, четыре основных браузера, есть разное разрешение, есть настройки пользователя и т.д.
Вообще, надо в спецификации html все эти вещи обсуждаются :)