I have this problem too, and I'm glad I didn't post about it without reading on to find if someone else had it. My desktop icons blink a few times and then I get the same runtime 1504 error.
I actually was allowed to run a plain DBPro program with just a PRINT "Hello World" on it. So I thought maybe it was just Direct3D stuff, but when I tried to run a program that just had bitmaps and sprites it barfed again. Why would DirectX be able to initialize a black screen for text, but not a screen for graphics?
I don't have any video card whatsoever, I have a piece of crap Packard Bell, Cyrix II, 300 Mhz, 96 Meg Ram, lots of HD space. I know I know I need a better machine for 3D games... working on it.
My problem is why would DirectX barf because of this and not be able to initialize? Shouldn't it just default to (ick) software rendering and not completely bomb? I would think this is a bug, either with DirectX or DBPro (not smart enough to know which.)
My other games such as Diablo2 run fine (if you consider 6 fps fine) with DirectX 8.1, I don't see why DBPro games would crap out without hardware support. Any ideas?