the box model hack is a valid, and occasionally necessary, technique but it is possible to avoid it by simply not setting border and/or padding on a block level element which has a width value. in most cases you can get around this by adding another block level element inside this one and add the border/padding to that, although this could of course result in non-semantic code..
stick with the bmh for now, it does the job
__________________