Implement drupal_goto()
I believe this function obliterates any followup processing other than saving session data and forwards the user immediately on to a new page.
Excerpt from Drupal.org: drupal_goto();
This function ends the request; use it instead of a return in your
menu callback.
To define where the users will be sent to, simply pass the same data you would to the url() function.
For example:
drupal_goto('node/44'); // Sends users to yoursite.com/node/44
An update regarding the drupal_goto() function from a submit handler (See https://drupal.stackexchange.com/a/33281):
//Note from https://drupal.stackexchange.com/a/33281
//When using drupal_goto() from a submit function you may need to be more aggressive.
$url = url("node/$nid");
header("Location:$url");
drupal_set_message(t('Message to be displayed in the next page'));
drupal_exit();
hook_node_validate()
is the correct hook, why can't you use it?