As Mapperz so well put it, the Join Operation between CSV and Shapefile is slow. Shapefile is a useful format but does have it's limitations, depending on your required output and operational constraints may I suggest you look at one of the Geodatabase formats available. There are 3 which may assist you at ArcGIS Desktop 10.
1) File Geodatabase - no logisitcal size limit, stored in the operating system folder structure, quicker and for non-edited data can be easilly compressed. Does have draw backs that you have to access in ArcGIS, so has no Textual only viewer. For the workflow identified you can then set up individual feature classes with the connections already done
2) Personal Geodatabase - 2GB size limit (4GB with options changes), stored in Access MDB so does run a bit slower due to the Jet Engine overhead, easilly import data as can use Microsoft Access to view and import the csv data. It is slower than File Geodatabase but could be an option
3) Personal SDE - if you have an ArcEditor License or higher you can install SQL Server Express and run Personal SDE (on the ArcGIS Desktop installation Media). This is a good option if you are looking at the possibility of expansion as gives you the full SDE capability which can be administered in Arccatalog. Has a size limit of 4GB specified by the database, and does require you to do more set up and installations.
Based on this I would say import all of your CSV data into an Access ACCDB (Access 2007 native Database Type) In ArcCatalog Create a new File Geodatabase, and import your shapefiles. Also create a new Personal Geodatabase, load all of your ACCDB Data into the Personal Geodatabase using an OLEDB Connection in ArcCatalog, and then import the Feature classes from the File Geodatabase. Append the fields and then save the data.
I hope this helps,