Forgot password URL in email returns an error
I know why this happens - we have the same problem. It is related to the escaping of the &amp; in the password reset URL not being escaped: 

http://yoursite/admin/actions/users/setpassword?code=abcd&amp;id=1234


somehow, this arrives at our (and your I guess) server as: 

http://yoursite/admin/actions/users/setpassword?code=abcd&amp;amp;id=1234


Then the code is abcd and a parameter called amp;id is 1234.

In our case, we have craft setup to send HTML emails, and have an email template like: 

Click here to reset your password: {{link}}


and end up with the link http://yoursite/admin/actions/users/setpassword?code=abcd&amp;id=1234 directly in the HTML - this is WRONG, since the &amp; symbol has to be escaped as &amp;amp;. 

Now, we could compensate, and make our template: 

Click here to reset: {{link|escape}}


Then we get correct HTML, but the plain-text version of the email is now broken. 

AFAIK there is no way to have separate templates for text and html emails in craft? 

I guess your problem is also HTML emails, OR you have a user with an overzealous email client, that adds the escape of the &amp; for you.