I have an ASP.NET MVC 2 application.
I got the same problem and this is a VS2010 bug if there's a reference link like: Web Project --> custom project --> assembly1 -->(indirectly) assembly2.
For now I find if I reference the Assembly1 in the web project, then assembly2 is included in the bin folder. So I had to add an additional reference link like: Web project --> assembly1 -->(indirectly) assembly2. Then VS can recognize assembly2 and include its dll file in publish action.