Override Views Contextual Filter in View Exposed Form Validation
Contextual filters work with arguments from the url so for example {drupal site}/search-nid/% where search-nid is the url of your page  and % is the value you wish to submit to the contextual filter.

An exposed filter tends to take it's values from the query string E.G.
{drupal site}/search-nid?field_nid=% (Again search-nid is the page url and % is the value of the nid)  

If you are trying to do what I think you are, (Filter results to a specific nid using a URL to "autofill" the filter) I did this in a hook_form_submit function and not a hook_form_validate function.  The function below assumes your module is mymodule and your form id is advancedsearch_form.  The function looked as follows:

&lt;?php 
/**
 * Implements hook_form_submit()
 * Takes values from submitted form and appends them to query string
 * uses @see drupal_goto for info one $form_state['#redirect']
 */
function mymodule_advancedsearch_form_submit($form, &amp;$form_state) {
  $qsa = array(); //for QSA arguments

  $field_nid = $form_state['values']['field_nid'];
  $qsa['field-nid'] = $field_nid;

  $form_state['redirect'] = array(
    'search-nid', 
    array(
      'query' =&gt; $qsa,
    ),
    302,
  );
}


This may not be best practise (In fact I'm sure it isn't as it was a quick hack I implemented in about 5 mins!) but I hope it does answer your question.