Loading one meta box only on post-new.php with a forward link

You shouldn’t ever be modifying any of the WordPress core files, your changes will be lost as soon as the next WordPress update is released.

The easiest way to do this would be with Advanced Custom Fields, create a “relationship” custom field type and make it a required field. That way the user can’t save the post without selecting a “parent post”.

If, however, you really need to show the meta box before the rest of the edit window loads (which I would advise against since I think it breaks what most people would expect as a standard interface), you can still create the post meta boxes inside your functions.php file. See here for a great tutorial: http://wp.smashingmagazine.com/2011/10/04/create-custom-post-meta-boxes-wordpress/.

Once you have the metabox, you could use some simple javascript to hide all of the page elements until something has been selected in the metabox, for example (untested):

$(document).ready(function() {
    $('div:not(#mypostboxid)').fadeTo("slow", 0.33); // fade the page to .33 opacity
    $('div:not(#mypostboxid)').find('input, textarea, button, select').attr('disabled','disabled'); // disable all other inputs
    $('.myselectbox').change(function() {
         $('div:not(#mypostboxid)').fadeTo("slow", 1); // fade back to visible
         $('div:not(#mypostboxid)').find('input, textarea, button, select').attr('disabled','enabled'); // re-enable inputs
    }
});