The center and side column will always be just tall enough to hold their content - you can't make divs automatically match the height of their neighbors. Since they are top-aligned, it is the bottoms that will differ.
If you want to fill the sidebars based on the center column height, that lets the center boxes be at the bottom by default. If pages with the same name (main_page=xxx) will always have about the same height, you can set sideboxes to display or not based on the $current_page_base variable. Each sidebox can have code added to its top to set a flag ($flag_display_xxx) to true or false based on any criteria you can code in. If the sideboxes will each stay the same height, you can calculate which ones will fit for a given center column height (determined by the page type). Once you have done one, it is just a matter of repeating the same work for each sidebox and varying the criteria.
Likewise, you can set #navColumnTwoWrapper to have a height depending on $current_page_base, and position the last (subscribe) sidebox at the bottom.
Another possible approach which easily covers the "bottom" boxes but does not apply tp the quantity of sideboxes would be to
give the three center boxes and the subscribe box position: absolute; and bottom: 1.0em;,
make #contentMainWrapper position: relative; to cause it to be the reference container for the absolute elements,
and give .columnCenter and #navColumnTwoWrapper padding-bottom: 12em; (adjust to equal the height of the boxes) so they keep enough open space at their bottoms and do not let other content invade that space.



