Swaroop has an interesting post why developing closed source applications can be difficult on Linux. A Linux distribution is like an assembly of various components, and each of them has alternatives, except the kernel. This variety and loose coupling is what gives flexibility and choice to the user.
Of course this also means that the developer now has to work much harder to ensure compatibility across all these alternatives. The permutations and combinations are too many to test against all of them, it can be a nightmare for the testing department.
The Linux Foundation is working towards some middle ground through the Linux Standard Base. Efforts like a cross-platform packaging API are trying to improve the compatibility. They even have a Developer Network to help those who are trying build applications for multiple distributions. Perhaps this can stop distributions from modifying the startup scripts, which Swaroop complains about. However, it is an ongoing effort and requires more attention and contribution.
The window manager, like KDE or GNOME, makes a critical differentce in appearance and behavior of the application. freedesktop.org is an effort to bring in interoperability and shared technology across these window managers. It might help to check with them for planning a cross distribution product.
The other solution is what is used by the multitude of open source applications out there. You start by supporting some of the alternatives. Or you can start by supporting the LSB certified distributions,and the community helps you extend the effort to others. Also the seemingly huge task of testing gets doable when a vast user base gets ready for carrying out the tests. However, closed source applications will require more effort to garner a community. Community is the biggest reason for applications to go open source.
But does this mean that closed source applications will have to bear the pain? You cannot control the distributions being created and used, nor can you think of supporting all of them through a single department. I think they should proactively start building a community which can help them make their product available and usable across various Linux distributions. Community will matter and help a lot, whether your product is open or closed source, if you are developing for an open source and flexible platform like Linux.