Features I've seen requested over the years that i do not feel are well supported in SME Server:
- "high availability" mode with auto-failover
- Multiple (load balanced, redundant, or route-based) WAN connections
- Multiple WAN IPs
- Multiple LAN connections - either for DMZ or Guests
- Multiple LAN IPs
- ISP-like support for multiple domains (all user accounts result in email addresses "@..." all domains)
- Real-time status screen for monitoring LAN and WAN traffic
- Bulk user-management tools that scale to hundreds or thousands of frequently-changing users *
- CalDAV support **
- Push / mobile email support **
- Multi-site support (one user database shared between multiple sites, possibly including local storage of each user's IMAP and profile data at his/her local site).
*
http://wiki.contribs.org/Lazy_Admin_Tools may help
**
http://wiki.contribs.org/Sogo may help
SME is built from the ground up by a very security conscious group of developers. I've used SME since before v6.0.1 (2004 or earlier); by installing the available updates in a timely manner I have had no security issues due to core SME Server components in that time.
As you say, since SME is based on Centos, you may find programs that can be installed on SME to address any frustrations you encounter. However, each non-core component you install adds a potential attack vector or stability weakness that is not being monitored by the SME devels -- which adds to your work load as the system administrator.
On a customized SME Server, you need to: and
- Install core SME updates as they become available
- Monitor all installed non-SME custom packages for available updates, and install them as and when appropriate
- Deal with potential conflicts between SME updates and custom add-on updates
Additionally, if your customizations include changes to *any* linux configuration file (either directly or through the use of SME custom template fragments), you need to:
- Understand Linux security well enough to understand the implications of any customizations you make to any of the linux configuration files on your server
- Be well enough informed on Linux to know when a vulnerability exposed in any component (SME Core or otherwise) on your server requires changes to any of your customized configuration settings.
(...which is no more than you have to do with a straight Centos server)