You'd probably want to consider the category of [modules](, since modules are the appropriate generalizations of vector spaces to arbitrary rings. (Though, John only requires [rigs](, which are strictly more general.) I suspect that endofunctors on this category would let you swap out the underlying ring in the manner you're suggesting.

(But take this with a grain of salt -- I'm throwing around high-powered rules without quite knowing what they mean!)