I realise that you just wanted to do a temporary join in a script, but then what are you doing with the join? It is very slow.
Be wary of the JoinField tool, it does not scale for large datasets. It can take several hours on a large table. :mad:
So what else can a poor Dilbert do?
Dictionary/UpdateCursor
My first attempt was to read the data with a searchCursor into a dictionary, then write out using an updateCursor.
Better, but a bit complicated and still very slow at 10.0, improved at 10.1.
FieldMap with a copy
I have recently discovered that you can do a temporary join and then use TableToTable or FeatureclassToFeatureclass with a Fieldmap.
This is really fast in comparison, but it is even harder than 'cursor and dictionary' to set up a fieldmap in a script.:(
My workaround is to run the command interactively, turn off unwanted fields, and then grab the Python snippet from the results window and paste it into a script.
It is then a 'macro' that you can substitute the paths and names with variables. Use triple quotes to imbed quotes more easily.
The disadvantage with the fieldmap method is that you get yet another copy, but that is normal for geoprocessing tools. you just have to delete and rename to cleanup.