It depends on how much time and effort you want to spend for it. I think, cracking md5 is not a very time consuming job since you need to implement a simple brute-force search algorithm only.
Integrating the power of GPUs into an existing programming language would be a great idea since many other applications such as the ones mentioned by other answers can be written using such a language. I'd prefer to do the job in such a way which is either transparent to the user or he needs only a little effort to use the capability.
One idea is to write an object file optimizer or alter an open source compiler which looks for specific patterns (like loops with simple body) in programs and replaces them with a CUDA version. That might be too much job to do.
The other option is to implement a simple matrix library with matlab-like operations. In C++, it would look like this:
CUDAArray<int> a = CUDAArray<int>(1000);
CUDAArray<int> b = CUDAArray<int>(1000);
// Use GPU to compute
CUDAArray<int> c = a * 2 + b;
Anyways, I think non of these ideas is a new one.