Yes, that's correct, the /ctl/ part of the Url will remain in the Url if it is supplied in the parameters for NavigateUrl. Generally, you would only use other controls in a module for editing/administration purposes, and not to show detail.
To remove this you will have to rethink the structure of your module. You would have to change it so that the current 'ProductDetails' module was another 'View' module within your module. The way I handle this particular situation is to put the 'detail' module on a separate DNN page, and then use module settings to link together your 'list' and 'detail' modules.
It's more work and messing around, but allows you much more flexibility in laying out your modules, and will give you more control later on. The other thing you will notice about using the 'ctl' and 'mid' parameters in the Url is that all other modules on the page 'disappear' because the page only shows that single control. If you're creating an ecommerce site, then that's a bad thing because (1) you can't use a different skin for the product list and detail pages and (2) you can't have other modules on the page : for example, help links, special offers, etc etc.
So my solution to the problem would be to rethink the structure of your module, and only use different module controls for administration purposes, not for general 'view' solutions.