how a module is installed? I was successfully able to install the Nivo_Slider.
But I want to have proper understanding on how module installations work.

My question is:
Why doesn't the simple module installation of Nivo_slider do the job? 
Why do I manually have to copy and paste something (look at the first step from here? Isn't that the whole purpose of module installation? Some other modules just get installed by copy and pasting the tar.gz file.
The Nivo Slider module relies on libraries that have a different license from the module itself. To work around this aspect, the Nivo libraries are distributed apart from the module. Consider this explanation from the licensing page at Drupal.org:

10. Can I write a &quot;bridge module&quot; to interface between Drupal and another system or library?
That depends on the other system.
It is possible to distribute a module that communicates with a 3rd party system over HTTP, XML-RPC, SOAP, or some other wire protocol, that leaves the 3rd party system unaffected.Examples of such systems include Flickr, Mollom, or certain legacy systems.
It is possible to distribute a module that integrates with a 3rd party PHP or JavaScript library, as long as the library is under either a GPL or GPL-compatible license. Examples of compatible licenses include BSD/MIT-style &quot;permissive&quot; licenses or the Lesser General Public License (LGPL). The Free Software Foundation maintains a list of popular GPL-compatible licenses.
It is not possible to distribute a module that integrates a non-GPL compatible library with Drupal, because it would be a derivative work of both Drupal and that other library and would therefore violate either the GPL or the license of the other library. Please be aware that includes some open source licenses that are incompatible with the GPL for one reason or another, such as the PHP license used for most PEAR packages.
If you wish to contribute a bridge module to a Drupal Git repository, please do not check in the 3rd party library itself. Doing so creates a fork of that 3rd party library, which makes it more difficult to maintain and only serves to waste disk space. Instead, provide detailed instructions for users to download and install that 3rd party library for use with your module. If you believe that your module is a special case where it really does need to be included in a Git repository, usually only because you need to make substantial modifications to it in order for it to work, please file an issue with in the Licensing Working Group issue queue first to discuss it.