Depends on what you mean by "scripts". Do you mean arbitrary SQL script files? In that case, I'm not sure. But if you mean individual statements, such as to create a stored procedure, then the below technique seems to work fine for me.
SqlConnection conn = new SqlConnection("MyConnectionString");
conn.Open();
SqlCommand cmd = new SqlCommand("CREATE PROCEDURE SelectThree AS BEGIN SELECT 3 END", conn);
cmd.ExecuteNonQuery();
If you have a bunch of such commands in a text file, usually GO must be placed between the commands. In that case, you could just parse the file by splitting wherever you see a newline, followed by a "GO", followed by a newline. Then you could use the above technique to run each command. That would work in most cases.
If that doesn't work for you, I'd use SQL Profiler to track all interaction with a SQL Server 2005 database and then use SMO to run a script against that database. That should tell you at least what SQL is run so that SMO can do its job. You might then be able to use those same techniques with all versions of SQL Server (2000, 2005, 2008). The tricky part would be if SMO does any complex parsing before it sends queries SQL Server. But, hey, cross that bridge when you get to it.
P.S. "
SMO - Manage your SQL Server!" seems to indicate that you can use SMO with SQL Server 2000. Maybe you just can't use 2005 features with a 2000 database?