Network Layer is the Layer 3 of the OSI model. If you read my post about design issues in computer networking, you must have an idea about the problem of identifying the correct route for packet transmission. The network layer is concerned with the operation of the subnet as well.
You always have the option of pre configuring the routes as a static table in the router when there are hardly any changes in the network topology. Another method is to prepare a route when a new session begins. Still another option is to configure a dynamic routing technique where each packet in a single transmission may take different routes. This is a highly flexible method which can reduce the load on individual nodes.
Congestion control is yet another function of the network layer. Imagine the case where you have too many packets on the subnet and this causes a bottleneck. It is always desired that the efficiency of a network is very high and bottlenecks are avoided as much as possible because it will affect the entire system.
From a business perspective also network layer is very important. Most service providers charge their customers on the amount of data transfered through their networks. Different networks will have different rates based on the number of bits or characters that are transfered. The network layer can have some accounting function built into it to facilitate for billing.
One other important function of the network layer is connecting two heterogeneous networks. Two networks are almost all the time different. They have different addressing formats, different maximum packet size and so on. The network layer in the OSI model takes care of these issues so that the higher layers are provided abstraction from these issues.