I have the same problem with an Atmega328p that has a Duemilanove bootloader.
The same error shows up whenever I try to program the chip using USBasp as programmer. I tried to program it by connecting a 16MHz crystal and also by without connecting a crystal. In both cases I got the same error (as shown by jat421).
I checked all the connections and I'm sure the wiring is correct as I was able to program another Atmega328p(with UNO bootloader) just by replacing the first Atmega328p.
does you usbasp has a switch/jumper which allows you to use a slow SCK ? if it does try setting your usbasp for slow sck and give it another try i get that error using this programmer if the micro its new (never been programmed) but using slow sck i can burn the fuses/hex and after that i can use the programmer at full speed
The USBasp has a jumper which allows to use slow SCK.
I did tried to program the Atmega328 by setting the jumper for slow sck, but I got the same error.