"What you did is exactly what you have to do."

So what you are saying is that that the box model works like crap, right? ;P

One would expect the box model to behave according to logic so if you have 3 CSS boxes 25%-50%-25% they would determine 3 exact columns much like this:

[ 25% ][ 50% ][ 25% ]

that's exactly how they should be shown and not:

[ 25% ][ 50% ]
[ 25% ]

which makes 0 logic and practical sense.

(I hope the formatting won't be screwed after posting this message... the textual "graphs" look fine while I am editing this reply, but I can't preview before posting so apologies in advance if after posting they will make no sense due to reformatting of the message.)

Additionally the padding should be relative to the boxes own boundaries so that when padding is added they would the boundaries would change the size of the box itself and would be shown show as:

[25%][50%][25%]

And if no padding is there but only content, the box should show within the same space without changing the size of the boxes hence occupying the same way:

[*****25%****][*****50%****][*****25%****]

where the "" above represents an N amount of padding and the "*" (stars) would represent whatever content within the the same 100% space.

The reason why the 100% indication has been included here is merely to show that conceptually the padding should not change the width or height of a CSS box... Apparently logic does not apply to CSS box model and one has to start thinking in the same odd manner that the illuminated minds who conceived that model did.

Each box should occupy its assigned space that in the example above would be 25%-50%-25% and SHOULD NOT require to adjust the width of one of those element to prevent that the last 25% ends up being pushed in off and placed in the area below the first to boxes.

So in the end, if the box model would be working according to logic, one would have no problem of sort with alignement and boxes "falling off" and having to resort to illogical and inelegant workarounds that are a patch at best such as reducing a box percentage because in CSS box model 100% is really 99% LOL!
If logic was applicable here the problem experienced when using the CSS box Model that user "Liesbeth" mentioned would simply not happen ;) and I would not be writing this post and you would not be waste your time trying to find a solution which eventually led you to end up reading this thread ;)... so remember you are here because who designed the CSS Box model didn't do so in a logical, functional way ;P

I guess expecting to work in a logical way it's a bit too much to expect from the CSS Box model... then again is not the only problem that CSS has.