Sudo module allows administrators to use the site primarily as a normal user but add permissions to their account as needed for the performance of administrative tasks. Unlike the many excellent user-switching modules often bent to this use (masquerade, impersonate user, devel's switch user), Sudo toggles a configurable set of permissions on the current user's account. This is useful not only for testing a site but also on production sites, in cases when it is desirable for administrators to use the site both as a normal user and as an administrator and yet all activity must come from the same account.
Sudo functions by removing and adding user roles on the fly. Any functionality
that relies upon user roles will be affected if those roles are sudo roles for
any users; for example, an action that sends emails to all users with the
"administrator" role will fail if the administrator role is a sudo role for some
accounts that are not sudoing when the action is triggered. To get around this,
you may wish to add a role with no permissions for administrators, and key tasks
that would normally target the "administrator" role to that role instead.
Sudo functionality bypasses Drupal's user_save function, so modules implementing
hook_user will not know about the changes that sudo makes to the users' roles.
Upgrade to Drupal 7:
Although I haven't tested upgrading Sudo to Drupal 7, I'm guessing that it should be seamless, as none of the data structures or variables have changed AT ALL. If by chance you have overridden theme_sudo_button in D6, you will have to adjust your implementation to the new theme function, theme_sudo_switch (check this if after upgrade you cannot see the sudo button anymore). If you do upgrade to D7, let me know if you have any problems.