You should probably look at reference classes, but you can also just use plain old environments:
> a=new.env()
> a$data=c(1,2,3)
> b=a
> b$data
[1] 1 2 3
> a$data[1]=99
> b$data
[1] 99 2 3
a
and b
are the same environment:
> a
<environment: 0xa1799fc>
> b
<environment: 0xa1799fc>
so their contents are the same objects.
I think some of the other R OO systems (R.oo, proto?) use environments like this to implement OO objects and methods.
So, although you can just do this, action-at-a-distance effects like this can cause very hard to find bugs, and you probably shouldn't.