...and that worked very well EXCEPT that I noticed that if I ever made a change to the external .js file then some caching would occur and WordPress? would still be invoking an older version of the external .js file.
I then verified that caching was occurring by inserting a time-of-day string at the end of my script statement, as follows...
According to the documentation I should be using the wp_enqueue_script function, so I then tried adding the following to the top of my contact form template...
<?php $js_loc = get_bloginfo('template_directory')."/scripts/wcontact-form.js"; wp_enqueue_script('wcontact-form', $js_loc); ?>
...but a subsequent test of my contact form showed that my form validation routines are now never invoked.
BTW I have no caching plugins installed.