how do you know it is hanging. How large is the table and how big are the indices on the table? Sometimes this can take a long time on big tables.
you may consider putting your database in bulk-logged recovery or changing your approach.
on large databases it is often impractical and not necessary to expect to reindex the whole database at once. a more refined approach is to check for the fragmentation of the indexes and to reindex the individual tables when only necessary, say when fragmentation reaches 10 to 15% (DBCC SHOWCONTIG in SQL2K).
you may also want to change your approach by using drop and create index on the clustered index on the table because if you drop and recreate the clustered the nonclustered ones are automatically recreated.
and I forget whether the tempDB has any roll in this operation but you may want to monitor it's growth and make sure it is not auto growing and that it has enough room during this operation.
this may be my most substantial post in months.
If one brings so much courage to this world the world has to kill them or break them, so of course it kills them. The world breaks every one and afterward many are strong at the broken places. But those that will not break it kills. It kills the very good and the very gentle and the very brave impartially. If you are none of these you can be sure it will kill you too but there will be no special hurry. Earnest Hemingway, A Farewell To Arms.