Hmm. Okay you're using "switch users" to log out of the machine, but not actually log out. I assume that when you do this and log back in, all your applications are still open and in the same state as when you "switched" (i.e., an open Notepad window is still open with the same text as when you switched), which indicates that you are actually doing the fast user switching, not actually logging out.
I've never personally used the "switch users" option because I use the classic Windows interface and disable fast user switching.
Even if you don't actually log into the second account (which until now was not clear, when you say you "switch users" that sounds like you actually switched to another account), Windows is still calling up whatever APIs and DLLs and drivers it needs to handle the process of "hiding" your running programs and login so that the second user can log in. Just the fact that you've called forth that process may be resulting in the heat.
If you actually do switch users, and log into the second account, does the CPU remain at such high temperature? If the temperature goes down then it's something that is involved with the system sitting at the user selection screen that's causing it, this may be a bug/feature where the program that runs to give you the login screen just happens to cause high CPU usage. That's entirely possible, even just sitting at your BIOS setup screen causes high CPU temperatures sometimes.
If you don't need the feature of being able to instantly go back to the same state on your system, you can disable the fast user switching, which would make it so you actually log out of the machine, closing all of your programs when you do. It's in Control Panel, User Accounts, and select "change the way users log on and off". At the very least, you could disable it and test whether it makes any difference.
If you do need it, it's really nothing to be that worried about. 40C is not at all a high temperature, my 2.3GHz X2 runs at 40C at idle (granted it has two cores putting out heat).