User information based on external database
Personally, I would fetch and update the fields on Drupal when the user logins, and update the remote database when the user in Drupal is updated. If you user Profile2 you might have to use other hooks.

An other option may be running a script outside Drupal to synchronize the two databases.