Ok, I just implemented support for this and it will be in svn trunk by late tonight. The way I implemented it so that it doesn't break existing skins is to use 2 css classes.
If the left has content but right does not divLeft.CssClass = "leftside left2column" this way if the skin doesn't have the left2column class defined it will still look as it did because leftside is still there. So all you have to do is add .left2column to your style-layout.css below .leftside so it takes precedence over the settings in .leftside and specify a different width.
Same thing with divRight, if there is nothing on the left side then divRight.CssClass = "rightside right2column"
So divLeft will always have .leftside and divRight will always have .rightside but the addtional class will be added in the case where the oopposite side is empty and by placing the additional class below the main class it will trump the main setting.
So the complete set of classes in the correct order is:
.leftside { }
.left2column {}
.center-nomargins { }
.center-rightandleftmargins { }
.center-rightmargin { }
.center-leftmargin { }
.rightside { }
.right2column {}
Best,
Joe