When attempting to gather index fragmentation statistics from SQL Server using the SMO method "EnumFragmentation" on an index, the command that is issued to SQL 2005, 2008, and 2008R2 scans every index in the database - creating unnecessary IO and blocking when using this method on larger databases. The information returned is indeed only relative to the index in question, but on larger databases, obtaining this information can create unavailability and take significantly longer than it should.
It seems the problem is that the command sent to SQL Server limits the results sent to the client in the where clause of the query instead of populating as parameters of the dm_db_index_physical_stats function. The only parameters populated to the function are the database_id and mode ('LIMITED'). All other parameters are NULL. This forces the function to analyze all of the indexes in the database first then limit to only the one that was requested by SMO.
Using this same method on SQL 2000 behaves as expected, limiting the results in the DBCC SHOWCONTIG statement, not in the query that is run after the temp table has been populated.