Kay,
Well in some cases, it can be a bunch. Let's just stick with some common hardware issues;
For instance, there are 4 ways you can talk to a printer. Text only (printing directly to the port), OPOS, JavaPOS and Windows (at least 2 ways within that) drivers. There is a new one that is due next year, called UPOS
USB ports on machines are relatively new. Of course, there are 2 types of these, powered & unpowered. Plug in the wrong device into the wrong port, poof there goes a $100-3000 device. Lets not get into the different USB connector types, male, female, mini male, A type, B type, etc. Let's not forget what devices you can plug into them. Printers, keyboards, mice, modems, scanners, coffee mug heaters, personal fans, reading lights, cameras, etc. Now should you use one port for all devices? After all, the designers of the USB ports say that you can attach up to 256 devices to one port. They forgot to tell us in what order to attach them. If one draws too much power from the port, the rest downstream either don't work at all or they only work sometimes!!
COM ports are one of the oldest way to connect peripherals, you have 5 settings there, baud rate, stop bits, data bits, parity and flow control. I know this means nothing to you, but one wrong setting, the printer prints gibberish. Not to mention different type of cables, with the same type of connectors. Printer and modem cables look exactly the same, but wired differently.
You can have 3 ways to attach a simple bar code reader. Keyboard wedge, COM port, USB. Wrong setup in RMS or any POS frankly, it doesn't work!
Do you really want to go further with software issues? This is just a sampling as to why this is so complicated!!