Preventing webform save
yes hook_form_alter is the right hook you are looking for.

Something like below. Please check the values of form field inside $form_state and fix the code accordingly.

Basically hook_form_alter will allow you wo conditionally add submit handler to your webform which means if form field value is Y then only your custom submit handler will call, also the way we adding the custom submit handler is by replacing the other handlers so no conflict with your sudmit handler and any other comes by default.

function mymodule_form_alter(&amp;$form, &amp;$form_state, $form_id)
{
   if($form_id == "your_webform_id") {
     if($form_state['your_form_field']['#value'] == 'Y') {
       $form['#submit'] = 'custom_submit_handler_external';
     }
     if($form_state['your_form_field']['#value'] == 'X') {
       $form['#submit'][] = 'custom_submit_handler_internal';
     }
   }
}

function custom_submit_handler_external(&amp;$form, &amp;$form_state) {
  drupal_goto("redirect to a page");
}

function custom_submit_handler_internal(&amp;$form, &amp;$form_state) {
  $redirect_to = $form_state['redirect_field']['#value'];
  $form_state['redirect'] = $redirect_to;
}


The above code is just an idea of how you can approach, please debug it at every step and make it workable for you.