Existem 2 técnicas que podem ser úteis para esse cenário comum. Cada um tem suas desvantagens, mas pode ser útil às vezes.
dimensionamento de caixa: a caixa de borda inclui preenchimento e largura da borda na largura de um item. Por exemplo, se você definir a largura de uma div com preenchimento de 20 px e borda de 1 px como 100 px, a largura real será 142 px, mas com caixa de borda, o padding e a margem estarão dentro dos 100 px.
.bb{
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
-moz-box-sizing: border-box; /* Firefox, other Gecko */
box-sizing: border-box;
width: 100%;
height:200px;
padding: 50px;
}
Aqui está um excelente artigo: http://css-tricks.com/box-sizing/ e aqui está um violino http://jsfiddle.net/L3Rvw/
E depois há a posição: absoluta
.padded{
position: absolute;
top: 50px;
right: 50px;
left: 50px;
bottom: 50px;
background-color: #aefebc;
}
http://jsfiddle.net/Mw9CT/1/
Nem é perfeito, é claro, o tamanho da caixa não se encaixa exatamente na questão, pois o elemento é na verdade 100% de largura, em vez de 100% - 100px (no entanto, uma div filho seria). E o posicionamento absoluto definitivamente não pode ser usado em todas as situações, mas geralmente é bom desde que a altura dos pais esteja definida.