For what it's worth, I share Sam's frustration with this issue. My linux sysadmin skills, such as they are, have finally gotten to the point that I understand and respect the difference between /usr and /usr/local. I can't tell you how many times in the past I tried to update a unix package by doing configure --prefix=/usr without really knowing why this was a bad idea.
Finally I saw the light, and now that I have it really seems like OACS needs to separate core, contrib, and site packages in much the same way.
I don't have the perfect solution, but I am definately in favor of some physical separation. The argument that a mapping document, or package attribute, is enough to differentiate them doesn't fly for me, any more than suggesting the same for /usr and /usr/local would.
FWIW, I also install my windows programs to C:\Program Files, knowing that installing them to C:\windows is a Bad Idea. I could name a dozen other platforms with similar separation. To me this is a no-brainer, and should be fixed.