There are a few ways to look at the problem of writing interoperabile software.
One common suggestion is the concept of "Be liberal in what you accept, but strict in what you send." While this is definitely important, it is also important to help authors of noncompliant software notice their problems before they become widely deployed and a problem for the community at large.
Another viewpoint is that of "be liberal considered harmful" since it allows people to write usable noncompliant applications. Then people can't implement to a standard, they need to implement to a standard, and to a whole bunch of buggy software's view of the world as well. This makes it much harder to establish good interoperability.
The authors of Cyrus have historically been leading proponents of "be liberal considered harmful", since it just leads to more software generated non-compliant protocol and we all end up in a bigger mess.
This often frustrates people who try to use noncomplaint software. In these cases, we suggest that first you try to contact the vendor of the noncompliant application to get them to solve a potentially wider problem. (Of course, we've had our own share of standards compliance bugs too).