+2  A: 

You need to write a Shell Extension; there is a guide for writing one in managed code (C#) here. It will involve doing a bunch of interop and implementing COM interfaces that the windows shell will consume, namely IShellExtInit and IContextMenu.

However, one could argue that writing a Shell Extension in managed code is not advisable; it will force windows explorer to load the CLR, (or any app that uses the standard windows 'Open File' dialog) - native code (C++) would be a better choice for this.

Phil Price
Thanks for the reference. I will take your advice and avoid .NET when writing a shell extension. I found another reference tutorial that is helping quite nicely here: http://www.codeproject.com/KB/shell/shellextguideindex.aspx
Balk
Raymond Chen also had a post about the headaches involved when using .NET for Shell extensions. It really seemed like a topic best avoided.
Joey