Simple kriging may stay inside the data range, depending on the simple kriging mean, but ordinary kriging typically will not:
> library(gstat)
> library(sp)
> p = SpatialPoints(cbind(c(0,0,0,0), 1:4))
> p$z = c(0,1,1,0)
> p
coordinates z
1 (0, 1) 0
2 (0, 2) 1
3 (0, 3) 1
4 (0, 4) 0
> krige(z~1, p, SpatialPoints(cbind(0,2.5)), vgm(1, "Sph", 2))
[using ordinary kriging]
coordinates var1.pred var1.var
1 (0, 2.5) 1.055556 0.3880208
> krige(z~1, p, SpatialPoints(cbind(0,2.5)), vgm(1, "Sph", 2), beta = 0)
[using simple kriging]
coordinates var1.pred var1.var
1 (0, 2.5) 0.9975884 0.3807338
> krige(z~1, p, SpatialPoints(cbind(0,2.5)), vgm(1, "Sph", 2), beta = .5)
[using simple kriging]
coordinates var1.pred var1.var
1 (0, 2.5) 1.06873 0.3807338
the reason for ordinary kriging to go beyond the data range is that it has to estimate the mean effect from the data, and hence (some) kriging weights become negative.