On the confirm_cart.php page you will need to save the session variable... So add code like this:
<?php
if (isset($_POST['State_2'])) {
$_SESSION['ShipState'] = $_POST['State_2'];
}
?>
Then use the session variable ShipState in your rule.
The session variable you are using now is from the persistent form and is actually an array of all of the session values, so you can't use it to refer to a specific field like you are attempting.