Question: I believe the conventional way to deploy Crystal Report with a .NET program is to set it as a prerequisite in the publish settings and then a .msi will be packaged with the ClickOnce files on the web/network/CD/wtv. When the user runs setup.exe, it will check whether Crystal Report is on the client computer. If not, it runs the Crystal Report .msi. But that will always require admin rights. 

My question is, is it possible to package Crystal Report's dlls along with other application's output assemblies so that no explicit install is required? My application makes use of many many components and including a dll with the install is sufficient for most of them. Could I do the same with Crystal Report?

Answer: 
I hate to be the bearer of bad news, but Crystal Reports for Visual Studio .NET is not designed for click-once deployment. Crystal Reports is a native application, and the assemblies you use to deal with the report depend on many non-.NET libraries.

Lots of COM objects that require registration, support DLL's that have to be installed... Licensing information that must be placed somewhere (Crystal Reports has always been big on licensing).

In theory, if your application is running full-trust you could monitor the installation of the Crystal Reports for .NET runtime, and duplicate it in c#, but that is a lot of work, and will be unreliable at best.

Sadly, the final answer is you can't.

You might check out Active Reports, or some of the other pure .NET reporting solutions.
You can add CR runtime merge module to your click-one MSI package, MSI will take care of merge module installation, It merges crystal report runtime installation files\process to your application click-one package.
<https://origin.softwaredownloads.sap.com/public/site/index.html>