When you use "SHUTDOWN IMMEDIATE", Oracle will kill all active sessions and rollback all transactions. If you are shutting down database which has high volumn transaction, it may take more than 15 mins to shut down cleanly.
After you issue "SHUTDOWN IMMEDAITE", try to monitor OS process for checking out what kind of process is running with high CPU time.
For your case, I trust it may be SMON. If so, just wait for it to complete.
Can you please specify the version of oracle you are using.
Can you check the output of ps -ef|grep ORA when you are trying to shutdown the database. There are be many reasons for the shutdown to hang. There can be a large transaction running. At time even when you kill the client side connection the same may continue to run on the server and will be visible from ps -ef|grep ORA.
Try to kill all the transaction which show local=no in the output of ps -ef|grep ORA.
Then see if the database goes down. I am assuming that you are the only person connected to the database and than through internal, or as / in 9i.
There are certain bug also associated with shutdown immediate in oracle so please post the oracle version.