You've kind of given a clue to the answer in the question - Sometimes a user will want to see all products.
Don't bother the user with making them think about whether they want to see all the results even before they've done the search and before they know how many results you are talking about.
Only when you have displayed some results, do you then want the user to be able to decide if/how they want to refine the search.
If there's only a few results, then don't even show the 'Show all' button. If there's lots of results (as you suggest there is in this instance) then show a manageable number and indicate how many out of the total are being displayed. At this point you can show the 'show all' button.
If the result is very very big you maybe don't want to give the option to 'show all' at all (unmanageable).
Once the user has an idea of the number shown and the total number, (and maybe of how paginated pages this corresponds to) they have the required information to be able to answer the question 'Do I want to see all the results at once - or is it more manageable to look at a page at a time?'.
Ideally, like eBay and some Amazon pages, you can also give an option to specify how many items can appear on each page - make this setting remembered between sessions if possible as it would automatically provide the 'number of items that the user is comfortable viewing at once'.
For a great example (and not just in my opinion), see www.JohnLewis.com - eg searching for sofas http://bit.ly/kUSAaR
JohnLewis were ranked top in the 2010 Ecommerce Usability for high street retailers (report here http://bit.ly/lAiZcp)