Regarding physical mounting of drives, there are brackets that let you put 3.5 inch devices into a 5 inch bay, I would imagine there are adapters and such to put 2.5 inch (and possibly 1.8) devices into a 3.5 bay. Worst comes to worst, get creative with some case modding.
The following factors affect what video card you can put into a specific motherboard:
- Mainly: slot type, this is either ISA (very obsolete), PCI (ancient - for video cards), AGP (legacy), and PCIe (current). If your video card is PCIe x16 and your motherboard only has an AGP slot, it won't work obviously.
- If the motherboard has an nVidia chipset I'd be wary of installing an ATI graphics card and vice versa.
The following factors affect what hard drives you can use with a specific motherboard
- Port type: this is either ISA MFM/RLL (very obsolete), EIDE (getting pretty legacy), and SATA. There are PCI IDE "paddleboards" and PCI/PCIe SATA expansion cards, so if you are missing ports on your motherboard or need more ports you can add them if you have PCI/PCIe slots. Not to mention there's a plethora of USB enclosures for both IDE and SATA drivers.
- Some old (1990's era) BIOSes had issues booting or accessing data from hard drives above specific capacities. This is usually no longer a concern.
- Real old 286/386 motherboards around the late 80's when the ATA standard was more in flux might have had some issues with specific brands of drives or using two different brands in a master/slave combination. This hasn't really been an issue since the mid-90's.
The chipset or "Super I/O" chip on a motherboard is responsible for communication between the hard drives and CPU.