When you use array as url
it will try to create url based on your router config, but if you pass string as param it will be passed literally, ie:
$this->widget('zii.widgets.CMenu',array(
'items'=>array(
// Root hardcoded
array('label'=>'Home', 'url'=>'/'),
// Root dynamic (works also if not in domain root)
array('label'=>'Home', 'url'=>Yii::app()->baseUrl),
// External url
array('label'=>'Examples', 'url'=> 'http://example.com/'),
// current url
array('label'=>'Contact', 'url'=> ''),
array('label'=>'FAQ', 'url'=>array('/faq')),
array('label'=>'Blog', 'url'=>array('/blog')),
array('label'=>'Order', 'url'=>array('/order')),
),
));
Oh, and thats rule for all places when you can use url.