If I am right students learning computer science at universities learn very theoretical kind of knowledge.
You are largely incorrect. A significant portion of most CS curricula includes hands-on, applied, practical programming, computer systems and software development exposure. The ACM publishes curriculum guidelines for ABET/CAC-accredited CS programs in the US. You should check their list of recommendations to get a more-or-less complete picture of what most CS programs worth the name cover.
A knowledge most of which (e.g. algorithm theory) can't be used to create everyday software (e.g. MS Word, IE, etc.).
Algorithm theory is absolutely and vitally important for creating everyday software (such as MS Word, IE, etc.), specifically, for differentiating the software sufficiently to compete. To even write a web browser, one needs to understand HTTP, TCP, multithreading, parsing, etc.
What opportunities do computer science graduates have if they don't want to do research but rather work at some company where they can make use of what they have studied. (e.g. not writing MS Word)
Any company that needs people to write software will need to hire somebody. Having academic credentials is a plus and a computer science degree is more applicable than just about any other option. More applicable, applied, practical options are typically viewed with some skepticism in the US since they're viewed as less rigorous (perhaps rightly so).
In case of still not being clear enough, generally speaking, what I would like to know is what can a computer science gradute work?
Anywhere most graduates can work. Most of industry bases hiring decisions on individual circumstances; a CS major with experience in mechanical engineering could be hired as a mechanical engineer. A CS major with experience making puff pastry could be hired as a chef. Most CS majors would be well qualified to take jobs writing software since, by virtue of being a CS major, they have some experience writing software.