Well. We had a discussion on the merits of OPML awhile back - Scoble's theory was that it was "good enough" and us tool providers should just suck it up. Let me explain what kind of problem that creates.
OPML is the default import/export format for most aggregators. However, the OPML *cough* spec *cough* doesn't actually specify anything for that purpose - which has resulted in various tool providers making various things up, and coalescing (more or less) around a de-facto standard. Except when there are variances.
I had a new user trying out BottomFeeder, and they took their export from another tool, and ran it through the import. The following flicker feed gave them trouble - the troublesome part is below:
http://urlHere?id=IDWentHere@passwordWentHere&format=atom_03
Looks normal enough, right? Well, the importer in Bf was mangling that url. A BottomFeeder bug, you say? Well, not exactly - as it happens, I had to add special handling for the @ character about a year ago, when I was informed that an aggregator (Liferea) embedded usernames and passwords into the url that way - but they weren't actually part of the url. For feeds that use HTTP auth (or digest auth), that tool slapped them onto the url, expecting the tool to figure that out and cache them. That worked fine, until I stumbled across this flickr usage, which embeds that sort of ID information right in the url, and expects to have it stay there.
Goodie - now I have code that has to look specifically for those two cases and differentiate them. This is why OPML sucks, and the author of the *cough* spec *cough* should be taken out behind the woodshed.