[eluser]Narf[/eluser]
While headers will be sent (and received by the browser), any output, including echoing from the controller, will cause a problem. If you have the same problem when using a view, then you probably have some white space characters outputted (preceeding a <?php tag maybe?).
Alter your php.ini settings to set display_errors to 1 and error_reporting to E_ALL - if I'm correct, then you'll see numerous PHP E_WARNING (or E_NOTICE, not sure) messages saying that output is already sent when header() is executed.