Operator overloading in .Net (at least for C# and VB) is intentionally less flexible than operator overloading in C++.
One reason that Java went so far as to remove overloading entirely is that too many developers abused overloading to do clever-looking things that confused other developers and broke core assumptions of generic algorithms that expect to be able to, say, reasonably compare two instances of a user type.
While .Net brought back some flexibility, the designers were careful to only allow overloading of certain operators with the intent that they only be used for their customary meanings.
The requirement to implement comparison operators symmetrically is a nod to that intention.
If you want to do more aggressive operator overloading, I'd encourage you to consider using F#, where you have access to a much broader palette of symbols with which to draw clever operator symbols.
x < yhave a specific meaning, buty >= xnot, unless you're overloading operators to have a meaning very different than their intuitive meaning?