I'm not sure why exactly but on_before_render is not getting called automatically when you are in page type controller. Just use the on_start function to, for example, add css stylesheets to the header.
I'd like to bump this as well, as this issue is present in the latest 5.5.1 and is seriously cramping my style. Easy to reproduce: Create a single page with a controller, try and see if you can get anything executed in the on_before_render method = Fail.
Thanks to any admin who takes a look at this one...!
Be sure to seehttp://www.concrete5.org/documentation/developers/blocks/mvc-approa... for further reference about that method.