When compiling larger more complicated ASP.Net projects which contain lots of user controls dotnet can get it wrong. Im running the latest version of vs2008 with all the last patches but I still get occasional niggles. Ive been getting an error telling me a control is ambiguous when I know it is totally unique. The solution appears to be to tell the compiler to stop being quite so clever:
Find this, or a similar line in your web.config:
<compilation debug="false" />
Modify it and add batch="false", this stops the compiler being too clever.
<compilation debug="false" batch="false" />