If it's properly deprecated, the old constructor should cause a compiler warning with a message explaining the issue. This way, old and new users of the new library will get the message, even if the sample uses the old constructor.
At least in languages that support that feature (.NET, Java, C++ with some extensions).
A more aggressive approach, used e.g. in the CLR for really serious problems (like the improper HMAC calculation bug, or background threads not aborting in CLR < 2.0) give you a warning and allow you to switch it off via config, so no code change is required, but everyone gets the "fix".
At least in languages that support that feature (.NET, Java, C++ with some extensions).
A more aggressive approach, used e.g. in the CLR for really serious problems (like the improper HMAC calculation bug, or background threads not aborting in CLR < 2.0) give you a warning and allow you to switch it off via config, so no code change is required, but everyone gets the "fix".