This should be easier now than it once was. A few years ago, I'd suggest that the following problematic pieces of software were "needed" to make a desktop Linux system usable; none of them shipped by default.
4. Acrobat Reader
5. Nvidia or ATI Driver
6. Wifi Driver and Blobs
8. Libfreetype6 (with bytecode interpreter).
The current state of play is much better:
1. Still needed, but increasingly replaced by HTML5.
2. Now free software
4. Evince/Okular replace it.
5. Sometimes needed, but increasingly solved: ATI drivers are open-source
and there is Nouveau. Intel graphics are good and free.
6. Wifi drivers are now almost always in kernel (or a few are out of tree
but free sw). Binary firmware blobs are an issue [I personally see these
as being like CPU microcode: there wouldn't be an issue at all if the
manufacturer had included the same blob in ROM on the card]
7/8. Free software, just upsets certain people who believe in patents!
Summary: with reasonably careful choice of hardware, it's only really the flash player that we need to worry about.