There is a “best practice” when programming in T-SQL that consists in fully qualifying any object referenced in your code. And this article explains one of the reasons why this is recommended.
In short: if you don’t write “dbo.my_proc” when calling a procedure, SQL will have to search the cache to see if there is an object with this name in your schema or if you are referencing the dbo schema. This may cause blocking because SQL doesn’t know witch object you are calling yet, and will acquire a lock in order to prepare to compile the procedure while it searches the execution plan cache – if there is some execution plan found on the cache at this moment it releases the lock and never compiles the procedure, but until then your query was delayed for some moments.
Description of SQL Server blocking caused by compile locks: http://support.microsoft.com/kb/263889
Some other tips to stored procedure optimization may be found here: http://blog.sqlauthority.com/2010/02/16/sql-server-stored-procedure-optimization-tips-best-practices/ and here: http://sqlblog.com/blogs/aaron_bertrand/archive/2008/10/30/my-stored-procedure-best-practices-checklist.aspx