I write my Ruby on Windows Vista and deploy on Ubuntu. And I've run into the usual set of headaches with doing this. Sometimes this results in me having to make fairly simple changes to, e.g., older versions of Capistrano to get them to work on my machine -- not too terrible because, after all, it is OSS Ruby code.
(I'm still running Cap 1.4.2 because it only took one line to make compatible. If I upgraded I would have to fix everything again.)
What flavor are the bugs? Usually, it ends up being a weak link in filesystem paths, SVN integration, or SSH integration. What causes these issues? Much respect for the folks who code them, I understand you do not owe anybody anything, but any honest assessment points to platform chauvanism.
"I do not use Windows, nobody I know uses Windows, true Ruby hackers are too cool to use Windows, begone ye Microsoft-infested slimeball"
The community (which I generally like and, let me note, actively contribute to) positively drips with this sentiment. DHH mentioned that 37signals wouldn't hire a Windows programmer (though he later backed down, somewhat), and the reasons were essentially tribal more than anything else.
And a big -1 to everyone who says that the Windows API is getting in the way of compatibility. Really folks? The Windows API being opaque made you hard code the path separator? The Windows API being opaque made parsing the results of a call to ls the more obvious choice than using the built-into-the-standard-library cross-platform way to get the contents of a directory? (To name just two implementation choices I've seen in Ruby libraries.)