I would personally use arcpy.MakeQueryTable_management and then use that table to create a new featureclass with that as its template.
Please note, that the layer that is created by the tool is temporary and will not persist; you have to use the item created by this, in creating a permanent table
Alternatively, you could just code the creation of the table using arcpy.CreateTable_management, with something like this:
arcpy.CreateTable_management(InputWorkspace,TabName,"",VectorConfigKeyword)
# Process: Add Field
for field in [TabField1,TabField2,TabField3,TabField4,TabField5]:
arcpy.AddField_management(InputWorkspace + "\\" + TabName, field[0], field[1], field[2],field[3], field[4], field[5], field[6], field[7], field[8])
arcpy.AddIndex_management(InputWorkspace + "\\" + TabName,IndexParams[0],IndexParams[1],IndexParams[2],IndexParams[3])
TabField1 = ["ID","LONG","","","","","NON_NULLABLE","REQUIRED",""]
TabField2 = ["Name","TEXT","","","255","","NON_NULLABLE","REQUIRED",""]
etc
IndexParams = ["ID",TabName + "_RID_IDX","UNIQUE","ASCENDING"]
That way you can design and build your FC anytime you like.
Best Answer
Here's code for the solution based on the accepted answer:
Below you'll find code for the solution based on @John's answer. Upto ArcGIS 10.0 JoinField is available only for ArcInfo. This one will work for all licence levels: