Are there a lot of indexes on the table(s) you are doing the inserts into? IOW, could it be that your data is causing a lot of page splits for the indexes? If Sql Server is having to re-org its index trees because of a patindex setting during your inserts a lot, I've seen that hit performance drastically (although v8/Sql 2000 is much better, so this might not be your problem).
You might not be able to do this, but if you can drop the indexes prior to the insert and rebuild them post bulk insert that might help (of course if you - as you should - have a clustered index on the table(s) you are inserting into you should not drop those indexes, and yes, I realize what I'm suggesting).
I used to write a lot of VB6 "insert" programs, but found that using a DTS package performed much better.
HTH.