The second plugin you posted is missing a ';' at the end. Maybe that was just an error copying it here, but if not that may be what's causing the white page. Otherwise, it's probably that it can't find the file you're telling it to include.
To get the output to display, you need to include it in a template in some way. One way is to pre-register it to a template, then edit the template and insert it where you want it to appear. So for example, if you wanted your file to appear in the header of every page, your first plugin might look like this:
ob_start();
Code:
include('firstplugin.php');
$first= ob_get_contents();
ob_clean();
vB_Template::preRegister('header', array('first' => $first));
Then you'd have to edit the header template and insert {vb:raw first} where you want it to appear.
Note that if you use vB_Template:

reRegister to insert something in the navbar, headinclude, header, or one of the ad templates, then you need to use hook parse_templates for your plugin.
If you want to know what template to edit, one way to figure that out is to turn on "Add Template Name in HTML Comments" by going to Settings > Options > General Settings in the admincp. Then if you view the html source of a vbulletin page in your browser, you should see comments telling you when specific templates begin/end.