In a medium bowl, mix together 1 tablespoon of the oil, the ginger, curry powder, cardamom, 2½ teaspoons salt, and 1 teaspoon pepper to form a paste.
Transfer 1 tablespoon of the paste to a large saucepan and set aside.
Add the chicken to the bowl with the remaining paste and stir to coat.
Marinate at room temperature while you cook the rice.
Stir the rice and 1¾ cups of the coconut water into the paste in the saucepan.
Bring to a simmer over medium-high heat.
Cover, reduce to low, and cook until mostly tender but still slightly firm, about 10 minutes.
Remove from the heat, uncover, and fluff the rice with a fork.
Set aside.
To a 12-inch skillet set over medium-high heat, add the remaining 2 tablespoons oil and warm until shimmering.
Add the shallots and cook, stirring, until golden brown, about 5 minutes.
Push the shallots to the side, then add the chicken in an even layer.
Cook, without stirring, until golden brown on the bottom, about 3 minutes.
Stir the shallots into the chicken, add ¼ cup of the remaining coconut water, and, using a metal spatula, scrape up any browned bits on the bottom of the pan.
Cook, stirring constantly, until the liquid has evaporated, about 20 seconds.
Add the rice, the remaining ½ cup coconut water, and the cranberries.
Stir, then cook undisturbed over medium-high heat until the rice begins to crisp and brown on the bottom, about 3 minutes.
Off heat, add the lime juice.
Using the spatula, stir to combine while scraping along the bottom with the spatula to loosen the crust.
Stir in 2 cups of the cilantro, then taste and season with salt and pepper.
Transfer to a serving platter and sprinkle with the remaining cilantro.