Global $user object isn't always "Fully Loaded"
Nope, you are doing it right as this is a known issue/behavior.  Check out http://api.drupal.org/api/drupal/developer%21globals.php/global/user/6 for a lot more information on it.  A link from there, http://drupal.org/node/57287, talks to your point directly (it is for D7 but is germaine to D6).