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.