Output buffering is dodgy.
For that to work correctly, you'd have to have the ob_start() line in config.php. Why? So the output buffering starts there. If you had it anywhere else it would not have any effect on empty lines/output in config.php.
Secondly, output buffering holds up the entire page contents from being delivered to the browser until either the end of script execution or ob_flush() is called.
A better solution, albeit slightly more "hacky" is to drop the trailing ?> off any files which are included. For example:
PHP Code:
<?php
$config['db_type'] = "localhost";
....
Not having the trailing ?> causes PHP to think it is still in execution mode for the rest of the file.
[edit] The best solution is to completely stop execution on one of the errors.