I am looking to get a widget to simply load javascript on the page in which the widget exists.

I have attempted adding the add action within the 'showWidget' did not work.

What shall we be held doing wrong?

PHP

wp_register_sidebar_widget('MyWidget','MyWidget', 'showWidget');
add_action('wp_enqueue_scripts', 'addScript'); //now the script appears on every page

function addScript()
{
    wp_register_script('MyWidgetJs', plugins_url( '/script.js' , __FILE__), array('jquery'));
    wp_enqueue_script('MyWidgetJs');
}
function showWidget($args)
{
    // add_action('wp_enqueue_scripts', 'addScript'); //I tried this but it doesn't work :(
    wp_enqueue_script('MyWidgetJs');
    extract($args);
    /* do widget stuff */
}

Appears the latest version of WordPress supports this: http://codex.wordpress.org/Version_3.3

Register your script, try not to enqueue it. Inside your widget PHP, include the wordpress_enqueue_script('your_script_name') and will also load it only if your widget can be used and put it within the footer.

You will upgrade to three.3, right? :)

You need to use is_active_widget() conditional to behave like:

<?php
if ( is_active_widget('MyWidget') ) {
     add_action('wp_enqueue_scripts', 'addScript'); 
}
?>

making use of your above code the ultimate widget may seem like:

<?php
 if ( is_active_widget('MyWidget') ) {
         add_action('wp_enqueue_scripts', 'addScript'); 
    }

function addScript()
{
    wp_register_script('MyWidgetJs', plugins_url( '/script.js' , __FILE__), array('jquery'));
    wp_enqueue_script('MyWidgetJs');
}
function showWidget($args)
{
    wp_enqueue_script('MyWidgetJs');
    extract($args);
    /* do widget stuff */
}