FIM is a great product and does a lot of great things- but- we decided against it for the self service password reset portion because just like you experienced it will not allow users to reset their AD password unless they first enroll. We
went with Password Reset PRO from www.sysoptools.com because it is more well thought through for real-world use cases, and it works alongside FIM's other features just fine:
1. allows non-enrolled users to enroll with an expired password or temporary (must change on next logon) password, and then directs them to reset their password after enrollment (awesome!)
2. has three different access modes to choose from and does not use the old-school "question / answer" enrollment, which just does not work.
3. is totally customizable and uses a two-tier secure architecture for extranet deployment (no credentials in the web application and does not reside on a domain member server)
4. uses AD natively without modifications, no database installs, and runs alongside FIM jsut fine- allowing full use of other FIM features.
5. it is not expensive
6. it was rediculously easy to install.
7. it is accesible from all web-capable mobile devices and phones and seems to work with all browsers.
8. can be load balanced and has recovery / DR built in
Hope this helps.