What I did before is I used a serial based programmer, XWISP628 http://www.voti.nl/wisp628/
and added an FT232 FTDI usb-serial bridge.
and this combined
What I did is this:
-On the FT232 side, remove R9 and short R8 to run this at 5V.
-On the Xwisp628, MAX232 and the associated caps are removed. The connection on D2 to the MAX232 connected to 5V.
-5V of both circuits connected. TX and RX of FT232 to PIN 7 and PIN 8 of PIC16F628, respectively.