forums... phpbb comes to mind for open source, then vbulletin is so much yearly but tends to be cream of crop in my opinion. with lots of extra addons / mods.
you can setup forums to be "private" or rather only certain user and/or users can see new posts. and use it like a help desk. an example on many forums, newbies with less than 10 posts, all there posts require admin approval before being seen by others ((mainly for spam purposes, but also point out newbies and helping them))
folks can subscribe to forums, and adjust there settings within the user control panels to be notified or not via email, when ever they get a reply to a post or a new post to a thread they subscribed to.
the WYSIWYG (what you see is what you get) or rather HTML editors, have picture uploads built into them. if not some larger "button" below editor to attach files. some of the editors allow "drag and drop" of files into the editors to attach documents.
various addons/mods for some sort of online chat. that might get initiated if need be.
various addons/mods for connecting user creation with third party software. with SSO (single sign on)
if clients register with forum, and make an initial single thread/post. you can reply to thread for any files you want, and as long as they get email update of new post. they will receive notification.
you can normally setup "user groups" company X has 20 employees. and they all can get username/passwords. and be assigned to a specific forum just for company X. and if need be use it as there own private forum.
you could always setup a forum software for them to use. and setup yourself as "admin" with a "help / support" forum. and just subscribe yourself to it. and let X company use what ever forums for there own private purpose.
there normally some sort of "check mark" for addon's/mod's that lets you click something to note a "problem was resolved" for a given thread, kinda like stackexchange "check mark"
lots and lots of websites use forums just for "support" from random games, to microsoft, to others.
===================
moodle it is a LMS (learning management software) many schools use it as an actual software in class. and designed for average person / teacher using it, setting tests, using forums, etc...
the forums that come with it are not completely top notch. there is a better forum plugin last time i checked.
you can setup a "class / course" for X company and have it completely hidden from everyone else, just like phpbb and vBulletin. and assign folks different roles within each course.
fairly easy for someone to setup tests, Q/A notations, along with various reading material, if company is required to deal with various tests for employees through out the years, example MSDS (material safety data sheets).
those with permissions can upload files within a course. and if need be students / regular employees can also upload files within a course (kinda of a submit course project) but it could be anything with a description.
email notifications are there. with correct options checked during the course creation menu / course settings menu.
moodle you can create a "custom database" within each course. fairly easy to use "non programmers aka generic students / teachers" can figure it out. to create a tracker issues perhaps.
===================
what ever you end up choosing, from civiCRM / drupal, phpbb, vbulltin, moodle, joomla, etc... there is going to be a learning curve and perhaps some customization / addons / mods to get things going within reason for how much effort you want to put into it and make it just right. and each software has its own quirks per say. how much is your time vs paying for something. not all the paid stuff is what it is cracked up to be.