Custom form not being validated on submission
Is this because the form is being submitted to an external URL?


Yes, the submit handler for a form in your website won't be executed unless that form is submitted back to your website.


  If that's the case, how to I validate a form before submission?


If you mean server-side (non-JS) validation, and you want the user to continue on to the remote URL as if they'd submitted the form as normal, you can't. There's simply no way to do that.

If you don't need the user to be forwarded on to the remote URL after submission, and the remote website allows it, you could just send a POST request from the submit handler with the data you've received from the Drupal form submission. 

If you're even luckier, they'll have an API you can use instead.