I have seen several instances where uart or serial communication is possible without max232 ic. How is it possible? This i have observed in pickit2 serial communication.
UART is a logic level serial data transfer format. It's not intended to be transferred "long" distances over external cables. The MAX232 translates the logic level UART to the voltage levels used in the RS232 format. On the other side another MAX232 (or something similar) is used to convert the signals back to logic level UART. If you have two chips on the same board communicating through UART there's no need to translate them to another format and then back again.
I'm not sure I understand the question. You need to convert (or not convert) the UART signals to whatever levels the opposite side of the communication channel expects. If it's another UART port on a different device on the same board using the same logic level then no translation is needed. If you're communicating with a serial port on a PC then you'll need to translate to RS232.
Actually, yes, you can, you can use transistors (Google is your friend), though, for reliability, data rate etc it is recommended to use something like the MAX232 with the correct charge pump and level translation facilities built in.