Is there a way to rate users instead of posts?

I would create a custom table that stored a) the user doing the rating b) the user being rated c) the rating d) the time of the rating. Between these 4, you should be able to store, aggregate, and effectively query your data with very little overhead or PHP processing.

update

note: this is pseudocode

function get_user_rating( $user_id ) {
    $rating = get_from_database(
        'SELECT AVG(rating)
        FROM ratings_table
        WHERE user_being_rated = '.$user_id
    );

    return $rating;
}

function add_user_rating( $rater, $rated, $rating ) {
    //check to see if there is already a rating to avoid duplicate records
    if( already_rated( $rater, $rated ) ) {
        //remove previous rating
        remove_rating( $rater, $rated );
    }
    //insert current rating
    insert_into_database(
        'INSERT INTO ratings_table
        ( user_doing_rating, user_being_rated, rating, time ) VALUE
        ( '.$rater.', '.$rated.', '.$rating.', CURTIME() )'
    );
}