We present linear precoding methods for downlink transmission in multi-user multiple-input multiple-output (MIMO) systems where channel state information (CSI) can be obtained through training. In this paper, channel training overhead and estimation error are rigorously accounted for while determining the net system throughput. First, we consider the case with training on the reverse link only. We study a precoding method which is a combination of two schemes: selection of users with largest estimated gains and zero-forcing to selected users. Next, we consider the case with training on both reverse and forward links. We obtain a lower bound on the weighted-sum capacity, and propose an algorithm to determine an efficient precoding matrix. This precoding method effectively utilizes the training on the reverse and forward links in improving net throughput.