MSDB is a system database. The reason you can't do it while the database is online is because SQL Server is protecting itself from damage.
It may be annoying, but it is actually a good thing. After all, I wouldn't want some hack coming along and messing with my system DBs (or user DBs) without having to take them offline.
Catadmin - MCDBA, MCSA
"No, no. Yes. No, I tried that. Yes, both ways. No, I don't know. No again. Are there any more questions?"
-- Xena, "Been There, Done That"