You can use the deprecated annotation on methods, classes, etc in a managed package so they can't be referenced in future releases. However, you can't have the deprecated annotation in any org other than a packaging org. We use ant scripts to deploy code from our subversion repository to an integration org, packaging org, and development orgs. If we add this annotation and check it into source control, it will no longer deploy anywhere other than the packaging org.
Am I missing how this is supposed to work in what seems like a typical development environment? Is there a best practice for using deprecation when the same code gets deployed to multiple orgs?