Hi Matt,
I have used JoinField with Python script tools for 9.3.1, 10.0 and 10.1 SP1. In most cases I used them for featureclass to standalone table 'joins' or raster to standalone table 'joins' within a file geodatabase. I usually don't use JoinField in a table to table join and never across two different workspaces.
The only issue I've ever had was at 9.3.1 I had to select all records in the target layer or table to get JoinField to work properly. Otherwise I ended up with the new field(s), but NO data. No error messages were ever generated when it failed either. I haven't had any problems with 10.1, so I dropped the 'select all process' from my scripts.
I know there was at least one thread in the forums with folks getting partial data population. I that there was a bug report for this issue, but I never saw that kind of behavior. It was all or nothing for me. Another tidbit, I experienced the same behavior whether I ran JoinField from a script or from ArcToolbox.
It is easy enough to test using 'SelectLayerByAttribute'.
-Steve