the reason I asked the question was because after reading the msdn advice on overloading this operator at the end of the page it mentioned:
A common error in overloads of operator == is to use (a == b), (a == null), or (b == null) to check for reference equality. This instead results in a call to the overloaded operator ==, causing an infinite loop. Use ReferenceEquals or cast the type to Object, to avoid the loop.
so I was wondering if I should implement the overload for the standard scenario.
No! Do not mess with reference equality unless you know what you are doing. Implement IComparable Equals method if you need to.
Edit: For a better picture look up Effective C#, Item #9.
Edit: You can get to it from here:
http://my.safaribooksonline.com/0321245660/ch01lev1sec10