Hmm it sounds like you might be having problems with the avr programmer you purchased from sparkfun, please contact them for any more help and support - they did a lot of design changes that we weren't involved in.
Yes I thought it was the programmer as well, until I used my laptop running the same operating system as my PC - XP with service pack 3.
Using the PC - I can burn any sketch to my Arduino Elevens (328 chip) as often as I like - no problems!
But when I try to burn the bootloader - using usbtinyisp - it hangs and gives a "usb write error".
The IDE direct to Arduino will not burn the bootloader using AVRISPmkii or other - error - "cannot find usb".
i even tried shutting down zonealarm and pulling the internet just to test any interference from that side - it made no difference.
Using the laptop, running the same operating system config as the PC - using usbtinyisp - I can alternate between burning the sketch to the 328 and immediately follow by burning the bootloader - as often as I like - seems a pointless exercise but it shows that the process can be done - as necessary.
The PC has even had a refresh of XP (repair via install, not a new install) and following with a complete refresh of updates up to service pack 3 - still gives that strange error when trying to burn bootloader.
The same Arduino was used across machines.
It's a strange one - and I will eventually get an answer. But it's academic as the usbtiny can upload any sketch and the bootloader is unnecessary when using an external programmer.
I also found one other interesting thing here - when using usbtinyisp, only the pocket programmer driver was necessary - WinAvr was not loaded and was unnecessary when using usbtinyisp - sketches loaded without any issue. In any case the IDE runs avrdude 5.4 by default, for the transfer.
So it seems that using the usbtiny as isp is quite simple once you 'get the hang of it' and try a few different ideas.
All you need to do, to use the external programmer, is to load the usb driver and edit the preferences file upload.using=usbtinyisp
You can do a search or, for Windows XP :
Open My Computer
Tools/Folder Options/View - Uncheck, Hidden Files and Folders
Now you can see the Applications data Folder which is normally hidden.
Vista etc has it in a different path - just do a search for the preferences.txt file
An average sketch takes around 35 seconds to load
The XP path is C(or your boot partition):\Documents and Settings\your user name here\Application Data\Arduino -preferences.txt
Twenty three lines down the file page you will see - upload.using=bootloader
Make sure the IDE is not running else the change will not take.
Change to upload.using=usbtinyisp (or the name of the programmer that you have)
Press SAVE and close the file.
Open the IDE and compile a sketch then press Shift/Upload (shift causes a verbose Avrdude display in the debug window - you can see the streaming hex code as it is uploaded to the chip and it ends with a flash verify then a great end note - Avrdude DONE - Thank you.
That means success - your sketch has been uploaded.
Aside from my obvious operating system issue with the PC(and bootloader) the external programmer works successfully on both my machines to upload sketches and it gives you a whole extra 2KB for the 328 chip - not much but not bad since there is only 32KB of flash memory, tops.
I hope that you too get excited ( at first at least) when you see - Avrdude DONE - Thank you!