If you have SQL Server 2008 (100) Web Edition then in sp_add_jobstep do not supply @database_user_name or in the GUI supply a run as user as this will result in a spurious error indicating the user does not have permission!
You just have to run with SQL Agents permission set.
A possible workaround if you don't want to have the owner be sa is to have the user be a member of msdb and grant the the SQLAgentOperatorRole in msdb. See if that works.
But to be honest, either use sa or a dedicated service account with enough permissions. It's better if the job runs under that context.
________________________________________________________________"In theory, theory and practice are the same. In practice, they are not."
- Albert Einstein