
Sree wrote down some more details on extension methods. The standard functionality is quite easy to use, however there are some things that can be rather tricky. For example, what do you do when you want a delegate to an extension method?
Read all about it here: http://blogs.msdn.com/sreekarc/archive/2007/05/01/extension-methods-and-delegates.aspx
There's also the problem of the compiler converting instance parameters. Depending on the overload you might get some surprising results if you don't know how the compiler fixes up the code that you typed in earlier. http://blogs.msdn.com/sreekarc/archive/2007/10/11/consequences-of-conversion-rules-for-instance-parameters.aspx