This paper proposes a distributed framework for demand response and user adaptation in smart grid networks. In particular, we borrow the concept of congestion pricing in Internet traffic control and show that pricing information is very useful to regulate user demand and hence balance network load. User preference is modeled as a willingness to pay parameter which can be seen as an indicator of differential quality of service. Both analysis and simulation results are presented to demonstrate the dynamics and convergence behavior of the algorithm. Based on this algorithm, we then propose a novel charging method for plug-in hybrid electric vehicles (PHEVs) in a smart grid, where users or PHEVs can adapt their charging rates according to their preferences. Simulation results are presented to demonstrate the dynamic behavior of the charging algorithm and impact of different parameters on system performance.