There are two different ways you can deactivate a user, depending on what your intended purpose is for the deactivation:
Deactivating a user is the functional equivalent of removing or deleting a user in the system. This removes them from all projects, assignments, user/member picklists, and denies them access to the application. However, any historical data they have in the system, including Task Updates/Work Entries, Documents, records they created, are retained.
If you need to remove a user, but want to keep their project memberships, assignments, et cetera, even temporarily, you can convert them to an External Resource rather than deactivating them. When you convert them to an External Resource, their access to the application is cut off and the license they were assigned can be reallocated, but their project memberships and assignments remain unchanged. For most practical purposes, an External Resource is simply a regular user who can't log into the system. This way you can effectively remove the user from the system without losing the things they're working on until you can reassign their work.
External Resources have all the attributes of an active user, including Resource Type, Billing Rate, Supervisor, et cetera, and you can manage them exactly as you would an active resource, including converting them back to an active user, when they can log back in and basically pick up where you left them.
Regarding Billing Rate history, we are introducting historical Billing Rate tracking in our Fall 08 release for all resources, active and external.