> The only viable free software business models I've witnessed are of large IT companies (e.e. Sun, IBM, Nokia etc)
It depends on what you mean by "viable free software business model". That phrase is basically an oxymoron. But if you mean "make money while at the same time writing open source code", then I don't think big companies have much to do with it.
Most companies who make money and release code are small, not big. (To pick a random example: Memcached by Danga Interactive). The vast majority of Open Source/Free projects are sponsored by small companies.
The big projects (Apache, Linux, Qt, MySQL, GCC, etc.) tend to get funded by the big companies, but only because those big companies are jumping on the bandwagon of projects started by little companies and/or individuals.
> A lot of smaller free software/open source projects, on the other hand, are quite crappy
Sturgeon's Law: 90% of everything is crud.
Since the good projects tend to get big, it makes it look like "the small ones are bad, the big companies make the good ones". But would be a very misleading conclusion.