I had the same problem with a very strange and demanding client. The site was an intranet company that could be accessed via VPN for remote users. One of the requirements (highlighted in bold):
The password re-entry mechanism should be convenient and not rely on email. Re-defined requests should be provided conveniently and require confirmation that the site trusted the visitor before re-typing the request
What I ended up with was creating a Manderbolt (100x100) for the user being downloaded as his "reinstalled" token, as well as some secret questions that they had to answer. To change their password, they had to answer their questions and upload their fractal (the quadratic plane was determined based on their personal information with simple hashing to avoid collisions).
This satisfied the requirement to reset the password, it had to be based on what they had, and also on what they knew. If they lost a fractal or forgot the answers to their secret questions, they had to personally appear to recover the password.
Not exactly bulletproof, but it was satisfying at that time. The task was to make fractals unique (at least 30 pixels unique), since most users shared a lot of common private data (city, state, area code, etc.).
Edit
The fractal (rather, its one-sided representation) was used in other places. Think RFID + Camera.
source share