You can update line 32 from:
$WAFV_Errors .= WAValidateRQ((isset($_POST["State"])?$_POST["State"]:"") . "",true,7);
to:
$WAFV_Errors .= WAValidateRQ((($_POST["Country"]=="US")?$_POST["State"]:"N/A") . "",true,7);
That will ignore the validation if the Country isn't set to US.
In order to keep the field required you would have to update the javascript file:
webassist/ecart/checkout/js/paymentoptions.js
You would comment out or remove these three lines:
var reqText = (reqIndex >= 0)?labelText.substring(reqIndex).replace(/"/g,"""):"";
stateLabel.attr("rel",reqText);
if (reqIndex >= 0) stateLabel.html(labelText.substring(0,reqIndex));
Then you would add this in its place:
newState.setAttribute("required","true");