There are two things to consider here I think:
The first is that, in a way, they are right. Writing cross platform C++ isn't that hard if you planned for it from the beginning. This is almost certainly the problem you're seeing. Most open source applications (most of the applications a Linux user touches on an average day), are absurdly cross platform. Think about the number of applications the average Linux user interacts with daily that are written in C or C++ and run not only on Windows and Linux, but also MacOS, BSD, Solaris, etc. on x86, x86-64, ARM, SPARC, etc. This is partly because people with an itch to scratch port the code to run on their systems, but also because then convention is to plan for cross platform portability.
The second thing is, the market may be more viable than you think. There is a huge misconception that people on Linux don't want to pay for software. For some people that may be true, but there are a lot of people (most, I think) who use Linux because it works better for them and they prefer it, not due to price. Also, if your company is producing a product that is used primarily in a professional setting, companies are well used to paying for software to run on Linux systems.
As for the point you make about packaging, as others have said, you really just need to produce packages for the latest version of the major distributions. Actually making the packages is not really all that hard, and most of the major distributions are using either debian packages (debian, ubuntu, etc.) or RPMs (fedora, suse, centos, mandrake), so it's very minor to modify some scripts to produce multiple packages from a baseline .deb and a baseline .rpm, and for everyone else just throw up a tarball with binaries and a readme, people will figure out how to get it installed. Alternatively, you could skip all packaging, and just post a single tarball with a bash or perl script to do the installation.
As for how to address the users on your forums complaining, as Joe Internet said, they might just be the percentage of people who are going to complain no matter what, but the first thing I'd do is try to explain that you have a large amount of legacy code that wasn't designed with cross platform support in mind. Second, honestly see if it would make financial support to make a Linux port, and be open with the results of that. Finally, if a port isn't financially feasible, see about doing some work to make the program work well with WINE. WINE shouldn't be the first solution, but it may well mollify the people who just want to use your app in Linux, and be a less expensive project than a full port. In fact, if you add code to the WINE codebase as part of the project, then not only could you open yourself up to a new market, but you could also get significant goodwill from the community.