The windows shell requires double quotes around paths which contain spaces. This is true even if the shell is called from perl. The OP's syntax is correct in this case. Ten years ago, I could not figure that out so I devised a "workaround" (shown as a comment below). The "8dot3" names do not contain spaces so they do not need the extra quotes. Although I do not recommend it, it still works on my Windows 7.
use strict;
use warnings;
my $browser = 'C:\Program Files\Internet Explorer\iexplore.exe';
$browser = '"' . $browser . '"';
#my $browser = 'C:\PROGRA~1\INTERN~1\iexplore.exe'; #workaround
exec $browser;