Try running Kontact from a terminal like Konsole or Gnome Terminal. You will be able to see the error messages. Just type kontact at the prompt.
Code:
$ kontact
Link points to "/tmp/ksocket-user"
Link points to "/tmp/kde-user"
Link points to "/var/tmp/kdecache-user"
There are no problems in the above example. Kontact runs fine.
If that doesn't help then you can do the same thing but use the strace utility to see what files Kontact tries to open when it is starting. It creates a lot of output but the problem will show up near the bottom of the output.
Code:
$ strace kontact
execve("/opt/kde3/bin/kontact", ["kontact"], [/* 66 vars */]) = 0
brk(0) = 0x806b000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/tls/i686/libkdepim.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/tls/libkdepim.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
...
That should give an error near the end of the output that will point to the problem.