How can I redirect users on login with PHP?
$edit['redirect'] = $redirect; doesn't stop other operations being executed I think.. The only thing I can think is to stop them with drupal_goto, but you should check you won't break anything else or not:

function MYMODULE_user_login(&amp;$edit, $account) {
  // Allow users to reset their passwords
  if (!isset($_POST['form_id']) || $_POST['form_id'] != 'user_pass_reset') {
    // Under 18
    if (in_array('administrator', $account-&gt;roles)) {
      $redirect = 'admin/hud';
    }

    drupal_goto($redirect);
  }
}