Sorry, I have logged this as a bug to be corrected in a future update.
to work around it for now, update the webassist/ecart/checkout/js/paymentoptions.js file and comment the "stateInput.setAttribute("required","required");" line in the following function:
if (CurState.tagName !== "INPUT") {
if (!document.getElementById("State"+index+"_Hidden")) {
var stateInput=document.createElement("input");
stateInput.setAttribute("type","text");
stateInput.setAttribute("name","State"+index+"_Hidden");
stateInput.setAttribute("id","State"+index+"_Hidden");
stateInput.setAttribute("title","Please enter your state");
stateInput.setAttribute("tabindex",CurState.getAttribute("tabindex"));
stateInput.setAttribute("class","formTextfield_Large");
//stateInput.setAttribute("required","required");
stateInput.style.display = "none";
CurState.parentNode.appendChild(stateInput);
}
and on the confirm page, remove the server validation code for the state fields, they will look similar to::
$WAFV_Errors .= WAValidateRQ((isset($_POST["State_2"])?$_POST["State"]:"") . "",true,16);
$WAFV_Errors .= WAValidateRQ((isset($_POST["State_2"])?$_POST["State_2"]:"") . "",true,16);