How do you pass "Program Files (x86)" to Powershell?
You have to enclose the argument to CD in single quotes to preserve spaces. Use Start-Process directly to avoid too much interpolation of variables:
$cmd = 'powershell.exe'
$dir = 'C:\Program Files (x86)\W T F'
$inner = "-NoExit -Command cd '$dir'"
Start-Process $cmd -ArgumentList $inner -Verb RunAs