You can use background mechanism for this. You can get the width and height of the box using \overlaywidth and \overlayheight. Here is an example:
\usemodule[tikz]
\startsetups tikz:frame
\starttikzpicture
\filldraw[fill=lightgray] (0,0) -- (0, \overlayheight) -- (\overlaywidth, \overlayheight) -- (\overlaywidth,0) -- cycle;
\stoptikzpicture
\stopsetups
\defineoverlay[tikzframe][\setups{tikz:frame}]
\definebackground[tikzframe][background=tikzframe]
\starttext
\starttikzframe
\dorecurse{10}{\input knuth \endgraf}
\stoptikzframe
\stoptext
which gives

EDIT: In a comment, @user19041 asked if it is possible to change the background depending on the state of the splitting. ConTeXt does have an internal macro \backgroundsplitmode that keeps track of how the \vbox is being split. Unfortunately, it does not differentiate between the case when the vbox does not need to be split, and the case when the vbox is split but we are at the last page. It is easy to differentiate between these two (provided you are not nesting such frames; in that case, we'll need to define a new counter for each nested level). The example below illustrates how this is done. I have just changed the background color to illustrate the concept.
\usemodule[tikz]
\setnewconstant\tikzbackgroundstate\zerocount
\definecolor[backgroundcolor][lightgray]
\startsetups tikz:frame
\starttikzpicture
\ifcase \backgroundsplitmode
% Case 0: no split or last page
\ifcase\tikzbackgroundstate
% The frame does not split across pages
\definecolor[backgroundcolor][lightgray]
\else
% Last page of a split frame
\definecolor[backgroundcolor][red]
\fi \or
% Case 1: split to max height, always middle page
\definecolor[backgroundcolor][yellow]
\global\tikzbackgroundstate=\plusone
\else
% Case 2: split to partial height. Always first page
\definecolor[backgroundcolor][green]
\global\tikzbackgroundstate=\plustwo
\fi
\filldraw[fill=backgroundcolor] (0,0) -- (0, \overlayheight) -- (\overlaywidth, \overlayheight) -- (\overlaywidth,0) -- cycle;
\stoptikzpicture
\stopsetups
\defineoverlay[tikzframe][\setups{tikz:frame}]
\definebackground[tikzinternalframe][background=tikzframe]
\define\starttikzframe
{\dosingleargument\dostarttikzframe}
\def\dostarttikzframe[#1]%
{\tikzbackgroundstate=\zerocount
\starttikzinternalframe[#1]}
\define\stoptikzframe{\stoptikzinternalframe}
\starttext
\starttikzframe
\input ward
\stoptikzframe
\blank[big]
\starttikzframe
\dorecurse{11}{\input knuth \endgraf}
\stoptikzframe
\stoptext
which gives

mdframedpackaged – dustin Jul 13 '13 at 08:10textbackgroundsin the ConTeXt garden. – Gonzalo Medina Jul 13 '13 at 17:42backgroundskey does not accept overlays. MetaPost overlays can be hooked in using thempandmethodkeys. I don't see any simple way to use TikZ graphics with the textbackground mechanism. – Marco Jul 13 '13 at 19:07backgroundmechansim. @Macro, in the past i have used textbackgrounds with overlays, so I don't know if something has changed recently. – Aditya Jul 14 '13 at 14:49backgroundkey doesn't work withtextbackground, then it is surely a bug. – Aditya Jul 14 '13 at 17:57