This is a very annoying feature in ADAM to attempt to do anything with. If you can successfully get a different detail-level server error from ADAM that let's you know the reason for the bind failure, then you can probably get away with this approach. The trick is being sure you can get the error code (and having a service account to do the bind with to make the change operation).
What code are you actually using that gets you the detail level error code btw? I know in AD when you do secure bind authentication you don't actually get the detail level error codes so you can't do this effectively. ADAM may actually be more useful in this area (or it may be a function of simple bind authentication provide the additional details).