What are Valid feature class and table names in ArcGIS Desktop?
It's in the documentation: Defining feature class properties
Specifically:
Names must begin with a letter, not a number or special character such as an asterisk (*) or percent sign (%). Names can't have any characters other than alphanumeric characters and underscores.
This question has been answered by Swingley above... But, in terms of automating this procedure, you could write a script that implements the IFieldChecker.ValidateTableName method. If i remember correctly it returns a corrected name with invalid characters replaced with underscores.