Drivers to accommodate lack of open standards.
Back in the good old day,
CGA/EGA/VGA they followed their specs.
Serial and Parallel they followed a common spec.
Then Windows came popular with the support of drivers. This allowed hardware makers to stop playing by the rules thus creating a huge sets of incompatible SVGA (Visa more or less won) Then we went to 3D and all was lost. USB, different Wireless drivers.... Network cards...
For some reasons allowing this is good, because it allowed them to innovate and create new features. But on the other side, it threw out the idea of Open Hardware standards out the window.
Because the lack of such good standards, It creates systems that have driver issues.