If you have a DIV with some text inside (contained in P tags, natch), you have two choices:
a) Apply 10px padding to the DIV
b) Apply 10px margin to the P
If you choose option B, you have no problem. However, if you choose A, then you need to understand the box model, and more specifically how certain browsers implement it incorrectly.
According to the [correct implementation of the] CSS box model, the total width of an element is:
WIDTH + PADDING + BORDERS
So if you have a div defined thusly:
border: 2px solid #f00;
The total width it takes up on the page will be:
250 + (50 * 2) + (2 * 2) = 354px
EXCEPT in browsers that bork the box model like IE5.x, where the overall width will be whatever you set the CSS width property to be: 250px in our example. This has the effect of making your content (i.e. the bit inside the borders and padding) be smaller than you intended - in this case:
250 - (50 * 2) - (2 * 2) = 146px
Best practice is therefore to avoid using padding to space out your elements and try to use margins instead.