ARB_vertex_buffer_object (aka VBO) was added in 10.3.4 and should be
supported on any card that already supports APPLE_vertex_array_range
(aka VAR). If you are running on a capable system, double check the
extensions list for it (not all ARB extensions are next to each other)
but please do file a bug if its really not there.
Let me ring in here, too, that APPLE_vertex_array_range is a better
suited spec for certain circumstances, such as modifying a small sub
range of data for streaming. It has the ability to flush a sub range
of data when modified, whereas VBO requires at the very least a call to
BufferSubData (which means at least one more copy for non-cached data)
or flushing the entire range if you modify a piece of the data manually
via mapping (whew, did that make sense? ;-). The main benefit that VBO
provides over VAR is the ability to mix and match multiple buffer
objects (ie streamable vertex positions with static texture coords).
Since you are asking about statically caching data on the video card, I
think VBO should work out fine, but don't let #ifdef's stop you from
using a better suited API whenever applicable (not just VAR vs VBO)!