Just curious, if you are working in an environment where DBA's DON'T know not to use sp_, is there another way to filter out the system procs and keep the rest?
If you use Information_Schema.Routines as the source of information, only user objects are listed. You can also brute force things using one of the following...
WHERE OBJECTPROPERTY(id , 'IsMsShipped') = 0
WHERE OBJECTPROPERTY(OBJECT_ID(tablenamecolumn) , 'IsMsShipped') = 0
WHERE OBJECTPROPERTY(OBJECT_ID(schemanamecolumn+'.'+tablenamecolumn) , 'IsMsShipped') = 0