The default option at creation of a new blog is in schema.php:
add_option('blog_public', '1');
That should be enough but you could plugin too,
add_action('wpmu_new_blog', 'ds_new_blog_settings');
function ds_new_blog_settings($blog_id) {
update_blog_option( $blog_id, 'blog_public', -1);
}
Hiding the wp-admin/options-privacy.php page can also be done with a plugin
add_action( '_admin_menu', 'ds_no_more_privacy' );
function ds_no_more_privacy() {
foreach($submenu['options-general.php'] as $key => $sm) {
if(__($sm[0]) == "Privacy" || $sm[2] == "options-privacy.php") {
unset($submenu['options-general.php'][$key]);
break;
}
}
if( strpos($_SERVER['REQUEST_URI'], 'options-privacy.php'))
wp_redirect('options-general.php');
}
}
Still have to hack the privacy bits out of your sign-up page the old fashioned way, though.