SynaptiCAD (http://www.syncad.com) makes electronic design automation (EDA) software: software for hardware engineers developing digital IC's. We've been developing our software since 1992. My partner and I wrote our first product, which ran on Windows 3.0 and was creating using the first Windows-based C++ compiler IDE, Borland C++. We currently employ about 20 C++ programmers, most with a background in digital hardware.
A large portion of the EDA market is Unix-based (a lot of Solaris, some HPUX, and a rapidly increasing amount of Linux-based systems), so it is important for us to support these platforms as well as Windows.
Synapticad's in-house programming staff did all the work. The primary work was done by three of us (the more Unix-experienced guys). Not surprisingly, we ran into Wine bugs along the way (especially in the Solaris port), but they were relatively easy to fix. We also had to add a feature to Wine ourselves so that the user sees "unix style" paths instead of drive letters in File Open dialogs. And, since our change didn't make it back into the main Wine tree, we have had to maintain that feature ourselves whenever we update to a newer version of Wine. We've only had to do that once.
We use a single binary for all our linux versions. This can be a bit of a challenge, but it keeps us happier in the long run. We guarantee support for RedHat 7.2, 7.3, 8.0, 9.0, Fedora Core 3 and 4, RHE 3, RHE4, and Fedora Core x86-64. We are also believed to run on Suse, but we don't test for this internally. We haven't done testing on any other versions of Linux as of yet.
We launch our application from a shell script which sets the WINELOADER, WINEPREFIX, and WINESERVER environment variables. This avoids problems when installing our application on a computer which already has Wine, and lets the user work on multiple types of X terminals simultaneously.
The performance of our application on Wine is quite reasonable, and the effort involved has been far less work than a traditional port!