<p>I have seen these being used every which way, and have been accused of using them the wrong way (though in that case, I was using them that way to demonstrate a <a href="http://blog.gadodia.net/extension-methods-in-vbnet-and-c/" rel="noreferrer">point</a>).</p>

<p>So, what do you think are the best practices for employing Extension Methods?</p>

<p>Should development teams create a library of extension methods and deploy them across various projects?</p>

<p>Should there be a collection of common extension methods in the form of an open source project?</p>

<p><em>Update: have decided to create an organization wide extension methods library</em></p>

I think that it depends on what purpose the Extension methods serve.
Extension methods that relate to specific business needs of a project (whether they are connected to basic data types or custom objects) should not be included in a library that would be distributed across multiple projects.
Extension methods that relate to basic data types (int, string, etc) or generics that have a wider application could be packaged and distributed across projects.
Take care not to globally include Extension methods that have little application, as they just clog up intellisense and can lead to confusion and/or misuse.