If you develop software that needs to exchange data with other applications you are probably going to use XML . But then what specs and schema should your documents be based on to make it as "open" and as rich as possible ? Check out Open XML.
There is a lot of info on how to add Open XML support in your .NET application .
And if you want to know why IBM is trying to block Open XML ?, read this . Its not about technology but its about politics and yes they are champions in that field .
Philippe