In our test environment, we have a SQL Server that has four named instances on it. For one of the instances, I was configuring it to be the distributor for replication. Upon configuring it, I received an error that sp_add_jobstep_internal system stored procedure was missing from the msdb database. I thought to myself how could a system object be missing in a system database. It turns out a lot of objects were missing from msdb and it occurred on all four instances. Now I don't know why it happened as I didn't do the installations and don't know if errors were encountered or if a bad CD was used or something, but I found out how to fix it. I found a link that mentioned running three files when your msdb database is missing. Well ours wasn't missing and it can't be dropped, so I decided to run the three files anyway since it was in a test environment after all. And what do you know, it worked! Here's the three files:
<PathToSQLInstance>\Install\instmsdb.sql
<PathToSQLInstance>\Install\servrmsgs.sql
<PathToSQLInstance>\Install\web.sql
If anyone knows why system objects were missing in the msdb database, I'd like to hear from you. They weren't dropped, I am sure of that.