in reply to The behavior of Win32::OLE->new
Instead of Win32::OLE->new(), what you want to use is CreateObject, like so:
my $ie = Win32::OLE->CreateObject('InternetExplorer.Application', 'Qui +t') or die "Can't start IE", Win32::OLE::LastError();
$ie in each script will reference its own instance of IE.
Update: According to Win32::OLE docs, new and CreateObject are equivalent. You should be getting a new instance of ie with each run.