Windows can only show a limited number of Overlay Icons (15 total, 11 after what Windows uses). Programs like Office Groove, Dropbox, Mozy, Carbonite, etc, will hijack a bunch of the 11 possible overlay icons (boy would it be nice if Microsoft upped the number of these as the number of applications that use them seem to increase and increase)...
You can see what overlays are set up, and change them (at your own risk) in the registry here:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers
If you are using TortoiseCVS (and have nothing else using overlay icons), you will get a couple of TortoiseSVN Icons, and all of your TortoiseCVS icons. This is because the overlay icons are used in alphabetical order. Again, at your own risk (editing the registry may blow up your computer, yada, yada, yada -- and if you are reading Stack Overflow and using Windows and haven't edited the registry, you are a rare beast indeed), feel free to rename them (I suggest putting numbers in front of the ones you want to use and "z_"'s prefixed to the ones you don't need). The TortoiseSVN Shell extensions are nicely named so you know what they do, the TortoiseCVS extensions are not. After looking through the source code, I found the pertinent information:
- TortoiseCVS0 - In CVS
- TortoiseCVS1 - Not in CVS
- TortoiseCVS3 - Conflicted
- TortoiseCVS4 - In CVS readonly
- TortoiseCVS5 - Ignored
- TortoiseCVS6 - Added
- TortoiseCVS7 - Deleted
- TortoiseCVS8 - Locked
Best Solution
In .NET Rocks podcast, not long time ago, Kate Gregory from Microsoft was saying that it is impossible.
She said something like: "If user wants it (tray icon) he/she will put it there". Reason for this is to prevent mess in the tray area.