I usually create Windows and Mac OS X versions of most of my software. Most people seem to think that with the right library, you only need to recompile your code for the other operating system, and everything automatically works perfectly, but this is seldom the case, and especially not for very complex software (what for example my 3D editor is). So there is still much work and testing involved for creating each version of a software. That's why I also sell separate licenses for my software. A license key for the Windows version of CopperCube won't work on the Mac OS X, and the other way round. Most people are OK with this, but for special cases, if they already own a license for one operating system and if they ask, I give a discount for the second license, of course.
Recently, one customer didn't like this after he switched from using a Windows PC to an Apple Mac, and demanded to get the second license for free. I explained to him that this is a separate software, that it needs a lot of work, basically what I just wrote above, but he didn't seem to understand. I noticed that this guy was selling cars, so I tried to explain him the problem this way:
"If you buy a full tank filling of petrol for your car, and then switch to a car which works with diesel instead of petrol, you also wouldn't go back to the gas station, comlaining that your new diesel car doesn't work with the petrol you bought previously, and demand a free tank filling of diesel. "
Maybe not the best analogy, but I think it could be understood that way.