I'm not sure that I completely understand what you're trying to do, but I think that you need to move your criteria into the LEFT OUTER JOINs. If you put it in the WHERE clause then if no match is found by the LEFT OUTER JOIN, those columns will appear as NULL and so they will fail the WHERE clause check. You are in effect turning the LEFT OUTER JOIN into an INNER JOIN.
FROM
dbo.Accomplishment AS a
INNER JOIN dbo.AccomplishmentType AS at ON
at.Id = a.AccomplishmentTypeId
INNER JOIN dbo.AccomplishmentArea AS aal ON
aal.AccomplishmentId = a.Id
INNER JOIN dbo.Area AS al ON
al.Id = aal.AreaId
INNER JOIN dbo.UserAccomplishment AS ua ON
ua.AccomplishmentId = a.Id
INNER JOIN dbo.[User] AS u ON
u.Id = ua.UserId
INNER JOIN dbo.UserUserGroup AS uug ON
uug.UserId = u.Id
INNER JOIN dbo.UserGroup AS ug ON
ug.Id = uug.UserGroupId AND
ug.localid = 2
INNER JOIN dbo.UserGroupType AS ugt ON
ugt.Id = ug.UserGroupTypeId
INNER JOIN dbo.UserUserGroup AS uugo ON
uugo.UserId = u.Id
LEFT OUTER JOIN dbo.UserGroup AS ugo ON
ugo.Id = uugo.UserGroupId AND
ugo.localid <> 2
LEFT OUTER JOIN dbo.UserGroupType AS ugto ON
ugto.Id = ugo.UserGroupTypeId
WHERE
ugto.localid = 4
ORDER BY
a.DateCreated DESC, u.LastName, u.FirstName, u.Id, UserGroupName