I think a key problem with Windows that has been under-discussed so far is startup junk that is installed by software you install. I will recommend Autoruns from sysinternals. It’s a small free utility that scans the registry and shows you everything that is configured to load when the computer starts, including shell extensions, and delete them if you want.
You have to be careful in there because it shows you everything, and turning off some of those things will probably break Windows. You can tell it to hide windows entries or all Microsoft entries to more easily find the third party junk (although there is a lot of Microsoft stuff I would consider junk too).
And for those who like this kind of thing, there is also ShellExView and ShellMenuView from Nirsoft, which specifically look at shell extensions and shell menu behaviour. I usually find third party software adds garbage to my context menus that I will never use, so these utilities can help you disable them.