Non-geostationary (NGEO) satellite communication systems offer an array of advantages over their terrestrial and geostationary counterparts. They are seen as an integral part of nextgeneration ubiquitous communication systems. Given the non-uniform distribution of users in satellite footprints, due to several geographical and/or climatic constraints, some Inter-Satellite Links (ISLs) are expected to be heavily loaded with data packets while others remain underutilized. Such scenario obviously leads to congestion of the heavily loaded links. It ultimately results in buffer overflows, higher queuing delays, and significant packet drops.To guarantee a better distribution of traffic among satellites, this paper proposes an explicit exchange of information on congestion status among neighboring satellites. Indeed, a satellite notifies its congestion status to its neighboring satellites. When it is about to get congested, it requests its neighboring satellites to decrease their data forwarding rates by sending them a self status notification signaling message. In response, the neighboring satellites search for less congested paths that do not include the satellite in question and communicate a portion of data, primarily destined to the satellite, via the retrieved paths. This operation avoids both congestion and packet drops at the satellite. It also ensures a better distribution of traffic over the entire satellite constellation. The proposed scheme is dubbed "Explicit Load Balancing" (ELB) scheme.While the multi-path routing concept of ELB has many advantages, it may lead to persistent packet reordering. In case of connection-oriented protocols, this phenomenon results in unnecessary shrinkage of the data transmission rate. A solution to this issue is also incorporated in the design of ELB. The interactions of ELB with mechanisms that provide different QoS by differentiating traffic (e.g., Differentiated Services) are also discussed. The good performance of ELB, in terms of better traffic distribution, higher throughput, and lower packet drops, is verified via a set of simulations using the Network Simulator (NS).