How to provide ubercart discount coupons only for specific users
What you are looking for is a custom hook_uc_validate_coupon function. Ubercart coupon module allows for custom hooks here:

// Invoke validation hook.
  foreach (module_implements('uc_coupon_validate') as $module) {
    $callback = $module . '_uc_coupon_validate';
    $result = $callback($coupon, $order, $account);


So in your site module you would need to define a new hook function that validates whether the order (or possibly the user object?) is using a billing address from Texas. Roughly, clone the existing validation function and add logic to check the order for your conditions.

function YOURMODULE_uc_coupon_validate($code, $order = NULL, $account = NULL) {

if ($order-&gt;billing_state != 'Texas') { // or however you want to handle this
   $coupon = new stdClass();
   $coupon-&gt;valid = FALSE;
   $coupon-&gt;message = t('This coupon code is only valid in Texas.');
   $coupon-&gt;title = t('Unknown');
   return $coupon;
}

.. rest of validation function


}