Author must complete profile info before they can publish a post?

That´s just a quick sketch. You´ll have to search up the functions yourself and complete the code:

// don´t add on front page
if ( ! is_admin() )
    return;

// Get user data
get_currentuserinfo();
global $current_user;

// Search what keys you need to be filled
echo '<pre>'; 
    print_r( $current_user );
echo '</pre>';

// Check the field
if ( ! $current_user->foo )
    // deny
if ( empty( $current_user->foo ) )
    // deny
if ( ! isset( $current_user->foo ) )
    // deny

Then take a look at this code on how to prevent publishing.