Keeping track of unique deposit Bitcoin Addresses per user I'm trying to setup a bitcoin service for my users. How do other sites or exchanges keep track of each users unique Bitcoin deposit address? And how does the application alert the admin/user when a deposit is made successfully after 2 confirmations? 

Which applications can do this? I was thinking of using electrum as it didnt require downloading the entire blockchain. What other apps are there that can do something like to manage users btc.
Just run bitcoind on your server and then connect via API to it, here is the reference:
https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)

There are also ready (open source) libs in several languages, which you can integrate in your own apps.

Some examples:


https://github.com/Bit-Wasp/bitcoin-php
https://github.com/Bit-Wasp/bitcoin-lib-php
https://pypi.python.org/pypi/python-bitcoinlib


But your question is too broad to give you a more specific answer, since you have to consider, if you want to hold user funds in one wallet and just identify them by different deposit addresses or a separate wallet with it's own keys for every single user.

In general: If you don't know exactly what you are doing, don't store any private keys on the server, especially if you want to hold someone's funds.