Here's a few different options you can try:
1. DOSBox works for DOS games (not for Windows games):
DOSBox, an x86 emulator with DOS
2. DxWnd is a program that can intercept old system/DirectX calls and translate them for newer systems:
DxWnd
3. dgVoodoo 2 is a similar program as DxWnd:
Dege's stuffs
4. DDrawCompat is a simple drop-in dll replacement for improving compatibility with old games:
narzoul/DDrawCompat
5. Instead of VirtualBox I'd recommend using PCem which is a full PC emulator (requires more CPU power than VB, though):
PCem
What works for you really depends on the games you're having problems with. Also, some of these programs might be a bit tricky to set up but there should be plenty of tutorials online. I'd probably try googling the game name with DxWnd or something first...
BTW, if any of the games has a 16-bit installer and you're running a 64-bit Windows then your only option might be installing older Windows version in PCem or VirtualBox. I know it's possible to convert some 16-bit installers to 32-bit but it really depends on the game as well.