What I think happens is that in the email send function Mage_Customer_Model_Customer::sendPasswordResetConfirmationEmail
the store id attached to the loaded user is used and not the current store you are on.
public function sendPasswordResetConfirmationEmail()
{
$storeId = $this->getStoreId();
if (!$storeId) {
$storeId = $this->_getWebsiteStoreId();
}
$this->_sendEmailTemplate(self::XML_PATH_FORGOT_EMAIL_TEMPLATE, self::XML_PATH_FORGOT_EMAIL_IDENTITY,
array('customer' => $this), $storeId);
return $this;
}
If the customer has been created via the admin the store id here will be the current websites' default store id.
What you would need to do is change this function to use the current store id rather than the one attached to the user, but I am sure this was done for a purpose though I do not know what that is.
The "simplest" way of doing this would be to change the line $storeId = $this->getStoreId();
to be $storeId = Mage::app()->getStore()->getId();
Note: This happens across a lot of the emails that are sent to the customer