Susan,
This might not be exactly what you are looking for but I wrote a little python script for joining a table to a feature class. The output preserves the input table attribute names instead of the table name being appended to each attribute name or the sequential _1, _2, _3, etc. being added using the standard ESRI join.
In this script I perserve the original field names from the input table. I don't do anything with aliases.
In the script tool interface I have added an option to either preserve all table attributes in the output, regardless if they match an attribute name in the input GIS dataset, or to drop the table fields that match the input GIS dataset.
In the case where you choose to keep all, the table field names that match existing input GIS dataset field names will have an _tab added to the attribute name to distinguish it from the existing input GIS dataset field names, this may result in the output table field names being truncated.
I have also included the standard option to keep all records or to just include the records that match.
Currently the script only supports input table types of dbf and excel.
Input GIS datasets supported are .shp, file geodatabase, and SDE feature classes.
Output is determined by the input GIS dataset type.
Input .shp and SDE feature classes output as .shp and input file geodatabases output as file geodatabase.
The attached .zip file includes the python script and a toolbox with the associated script tool.
If you have any questions just reply to this thread.
Thanks,
Joel