Recently I have made two USBASP (http://www.fischl.de/usbasp/) AVR programmer boards. At home I use AVR MCUs, and all were ok. ATmega-8 with external 16.384MHz oscillator is programmed in 4 seconds. At my workplace I deal with AT89s8252 (military analog), and in my lab it used to flash them by means of 3-resistors on an LPT port. Such a so-called «programmer» flashes the chip in some minutes and kicks.
But I found that avrdude does not support such MCUs. Neither 8051 nor at89s8252. The only I have found was the config for 89s8253, this chip has SPI-commands similar to AVR ones.
I was sad, but suddenly I found s51dude (http://s51dude.gforge.lug.fi.uba.ar/) project, that works with USBISP programmer (usbtiny), which has a different schematics. Project's homepage provides patched (for s51 ISP support) sources for USBISP, so I've made little changes and flashed my USBASP with patched USPISP firmware. Now I have USBASP board which is detected as USPISP and supports both AVR and s51 chips.
Patched firmware with sources for USBASP board you can get here.