You might be used .NET Framework 4.0 (CLR 4.0) in your custom action. It will not run in .NET Framework 4.0 or newer is not installed machine.
In your XP machine .NET Framework 4.0 may not be installed. So that you’re custom action is not running.
Use useLegacyV2RuntimeActivationPolicy property in your CustomAction.Config
file and set all supported time version which you want to use (CLR 2.0 for .Net Framework 2.0 and 3.5, CLR 4.0 for .Net Framework 4.0 and 4.5)