You may want to check if the Event Receiver is registered (using SharePoint Manager) and verify if it needs to be scoped at Site level rather than at Web level (the Webprovisioned event does not get fired for the root web). Here's Here's a good post giving details on WebProvisioned event receiver – a practical example.
UPDATE: The differences in the two scenarios may lie in the context (HTTPContext v. SPContext) - this can be verified by posting events in the ULS logs.