Conventionally, the right place to put machine-specific login-time initialization is /etc/profile. Many Unix variants don't bother much with /usr/local/etc if at all, anyway.
Note that for GUI logins, no profile file is directly read. However many distributions of X11 arrange to read source /etc/profile from the X session initialization. /usr/local/etc/profile is not a classic location and would not be sourced.
Many distributions have a directory /etc/profile.d, and put code in /etc/profile to source the files in /etc/profile.d. If your distribution does that, the best place for your machine-specific content would be a machine-specific file in /etc/profile.d.
On modern *BSD, /usr/local is for packaged software, not for local installation, and there /usr/local/etc is for files shipped with a package or their configuration. There the distinction between /etc and /usr/local/etc is whether the configuration is meant for the base system or for a specific program. /etc/profile is a system-wide configuration — you could make a case that if the login shell is a third-party package then its configuration should be in /usr/local/etc, but profile is not specific to a given shell and applies to /bin/sh which is part of the base system. (FreeBSD appears to be inconsistent though: the bash package reads /usr/local/etc/profile whereas the zsh package reads /etc/zprofile.)
If you (as the administrator) leave it to users to source another file from their .profile, that indicates that the customizations in that file are not meant for everyone, only for users who have an unusual need.
/usr/local/etc/profilemay affect them? 2) Existing users will need to edit their shell initialization files if you go for.bash_profile(and won't otherwise).