Aside from the fact that there are many unix systems that run on many different platforms, just consider the problems that Windows software faces from this distribution modal, even though they really only have to worry about one version of windows, and one platform ( the PC ).
Even with just the PC to worry about, there are still two architectures: 32 bit and 64 bit. If you notice, the vast majority of windows software simply ignores 64 bit and only ships 32 bit software, leaving you with sub-optimal software if you have a 64 bit system. Then there are libraries. One software vendor does not want you to get strange errors trying to run their program if you don't have the proper library already installed, so they just include the library with their program ( making the download larger, even if you already have this library ). A second program does the same thing, but with a different version of the library. In the best case, program B contains a newer version of the library that is backward compatible, so if you install program B after program A, things work, but installing them in the reverse order leaves you with the older version of the library and so program B breaks. Often times though, the library vendor makes changes that are not backward compatible and does not bother changing the name of the library, so no matter which order you install the two programs in, the first one will break. This is called "dll hell".
Sadly, to avoid this, most windows software has resorted to shipping all of their libraries in their own program directory instead of a shared directory, so each program has all of its own private libraries and will never share with each other, which defeates the whole point of dlls in the first place and you end up using a lot more ram and disk space and time downloading all of the duplicate libraries.
This is why open source software is published in source form, and OS vendors have come up with package managers that sort out the dependency issues and download only the precompiled binaries that you actually need, without duplicating libraries all over the place. This also deals with the fact that there are many different unix systems that run on many different platforms.