How do I enter DFU mode on an iPhone 3G OS 4.2.1?
DFU has always worked as follows:


Turn off the phone
Hold power and Home for 10 seconds (exactly 10 seconds, use a clock with seconds)
Release Power, but keep holding Home
After 5-10 seconds you should get the phone detected on the computer with the screen still black.


I've tested this on 2G, 3G, 3Gs and works on all of them fine.

Here's a video on how to do DFU properly: iPhone DFU Mode

Also I just like to note that this procedure must not be mistaken for recovery mode (iTunes cable screen), which is done by:


Hold Home
Keep holding Home, press power to start the device (1-2 sec is enough)
Release power, keep holding Home until you get to the iTunes cable screen