The following bugs have been reported and noted since SP2, NIM071964;NIM068933 "The Join Field tool does not match all rows even when a valid match exists. " and SP1, NIM069071;NIM066191 "The environment setting, 'Maintain fully qualified field names,' is not honored when performing an Add Join in ModelBuilder." I don't feel that it's appropriate that work around have to be applied to resolve bugs that have been around since SP1.
NIM071964 and NIM068933, duplicate issues, has been resolved in 10.1. In regards to NIM069071 and NIM066191, duplicate issues, these bugs have been rejected as non-reproducible. The issue with these bugs is there was a step that was not taken that is necessary to set the environment variable "Maintain fully qualified field names" to false. To set this environment variable you have to do the following two steps:
Check on "Maintain fully qualified field names" under Model > Model Properties > Environments
Click "Values..." and under the Fields dropdown uncheck "Maintain fully qualified field names"
I understand this may seem a little counter-intuitivie but in the first dialog you are setting the environment variables whose values you want to to override. In the second dialog you are actually setting the value of the overriden environment variables. This is the same procedure for all other environment variables in the Model Properties.
I am using the Add Join within model Builder I followed this advice to set model properties to ensure the qualified names box is unchecked and the join has worked, retaining the original field names.
However when If first built my model I simply exposed the maintain fully qualified names as a parameter to the add join tool and made sure this was unchecked. However this resulted in a join where the field names where still listed by the source file.
I had though that due to the environment setting hierarchy that a setting of the parameter oft he add join tool would override that of the model? in which case setting this for the whole mode in properties would not be necessary? or is that not the case?