I am unable to test this in SQL Server 2005 (the below works in 2008 and 2012). According to technet, the same syntax is applicable to 2005.
As you may not want to update jobs that are related to maintenance tasks, I feel the below steps are the best way to do this. Please note that this will only change steps that do not require a system account to run, i.e., it will not update PowerShell steps and similar.
Make sure you run all the below in your MSDB database as that is where all your jobs are held in SQL Server. Run the following select statement (replace the UserName with the user you want to use, if using a domain/network name prefix with domain\username):
SELECT 'EXEC sp_update_jobstep @job_name = ''' + sj.name + ''', @step_id = ' +
Convert(VarChar,sjs.step_id) + ', @database_user_name = ''UserName''' AS OutputStatements
FROM dbo.sysjobsteps sjs
INNER JOIN dbo.sysjobs sj
ON sjs.job_id = sj.job_id
This will output something similar to this in your results window:
EXEC sp_update_jobstep @job_name = 'SQL MDW: Auto Index Management', @step_id = 1, @database_user_name = 'UserName'
EXEC sp_update_jobstep @job_name = 'SQL MDW: Auto Index Management', @step_id = 2, @database_user_name = 'UserName'
EXEC sp_update_jobstep @job_name = 'syspolicy_purge_history', @step_id = 3, @database_user_name = 'UserName'
EXEC sp_update_jobstep @job_name = 'syspolicy_purge_history', @step_id = 2, @database_user_name = 'UserName'
EXEC sp_update_jobstep @job_name = 'syspolicy_purge_history', @step_id = 1, @database_user_name = 'UserName'
Copy all the statements by selecting on the column header (OutputStatements) and hit CTRL+C. Open a new query window and paste the results CTRL+V into the query window. Remove any EXEC statement/lines you see for maintenance jobs or others you do not want to update with a database user.
Now you should be left with the sp_update_jobstep commands for those you truly want to update. Execute the query by hitting !Execute or F5.
To see your new job step details, use this statement:
SELECT sj.name, sjs.job_id, sjs.step_id, sjs.database_user_name
FROM dbo.sysjobsteps sjs
INNER JOIN dbo.sysjobs sj
ON sjs.job_id = sj.job_id
Happy job step changing. :)