I'm not talking about your backup job.
Look at your maintenance plans. Do you have any which have the database integrity task? If there are, does that task have 'automatically repair minor problems' checked?
Shrinking won't help anything. It'll potentially hinder performance afterward.
CheckDB without options just checks. That said, corruption will not alone make a database go into the single user state. Neither will fragmentation. The only thing which will make a database go into single user is something running ALTER DATABASE <database name> SET SINGLE_USER;
While you're at it, search through jobs and procedures for anything that runs ALTER DATABASE.
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)SQL In The Wild
: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter
We stand on the bridge and no one may pass